首页 > 代码库 > python8
python8
编译和解释性语言的区别 编译 典型的C C++ 编译完成之后是可执行文件。 机器码-底层(外文书,但是不懂中文,翻译成中文就可以看)解释性语言----看一句英文书,让翻译解释一句解释器写的代码便于移植。(python)解释型语言还有Java JavaScriptPython是一门动态解释性的强类型定义语言python的多线程是不能利用多核优势的 (python只有用一个线程)为了利用多核处理器,看过很多文档,研究很多python相关技术,全部是失望的。 1、Python:受限于GIL,被锁住只能用一个CPU核心。 2、Twisted:其实只有一个线程,何谈多核的利用。 3、Stackless:测试表明其多线程程序的速度比Python使用的native线程方式要快一点,不过一样没法用多核。 4、parallel Python:多进程方式,感觉封装的很龌龊,虽然翻译完了文档,但是仍然没有兴趣去使用。 现在的办法: 1、负载均衡:后面在多台服务器上启动多个Python程序。现在我开发的应用基本上都是用twistd启动的daemon程序。 2、C/S应用:各个进程间用多进程通信。 3、subprocess:使用这个模块,利用外部进程作worker,异步等待结果。 不支持python3的 是Twisted 异步网络框架cmd 下执行 print("hello world")window 上 cmd下执行.py文件,需要:python hello.py程序linux上执行.py文件,首先先赋权限 chmod 755 hello.py然后执行 ./hello.py
在Linux 下,一定要加这个 #!/usr/bin/env python 声明解释器的变量的定义:变量是用来存东西的,后来要用到它。关键字不能声明为变量名如:as,break,def变量名的第一个字符不能是数字常量:π 在python没有常量这个概念。PIE 大写,可以改。烽火戏诸侯 1001-5000 101-1000 1-1001 1 1 ASCII、 Gb2312、 GBK 、unicode万国码(2个bytes) utf-8(en:1byte, zh:3bytes) 这些编码是向下兼容的GBK是兼容gb2312,gb2312是兼容ASCII
python3相比python2,一个特别明显的变化,字符集默认支持中文python2中,先声明utf-8处理我这个字符集-*- coding:utf-8 -*-name="你好,世界"print(name)‘‘‘ 三个单引号 是注释多行,如果给它赋一个变量,就是打印多行IndentationError就是缩进错误
把xx.py放到Site-package(第三方 可以自己写)下,然后import xx.py
SOCK
import socket,osserver = socket.socket() #获得socket实例server.bind(("localhost",9999)) #绑定ip portserver.listen() #开始监听print("等待客户端的连接...")while True: conn,addr = server.accept() #接受并建立与客户端的连接,程序在此处开始阻塞,只到有客户端连接进来... print("新连接:",addr ) while True: print("等待接受指令") data = conn.recv(1024) if not data : print("客户端已断开:") break cmd_rec=os.popen(data.decode()).read() print ("before send",len(cmd_rec)) if len(cmd_rec)==0: cmd_rec=" output..." conn.send(str(len(cmd_rec.encode())).encode()) conn.send(cmd_rec) print("send done")server.close()
#-*- coding:utf8 -*-import socketclient=socket.socket()client.connect((‘localhost‘,9999 ))#端口号大于1024while True: cmd=input(">>:").strip() if len(cmd)==0: continue else: client.send(cmd.encode("utf-8")) cmd_res_size=client.recv(1024) print ("sssssssssssssssss",cmd_res_size) print ("命令结束大小",cmd_res_size) recv_size=0 recv_data=b‘‘ while recv_size<int(cmd_res_size.decode()): data=client.recv(1024) recv_size +=len(data) recv_data +=data else: print("receive done",recv_size) print(recv_data.decode)client.close()
python8
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。