请简述Python2与Python3中的区别,python2与python3区别
Python2之间的语法差异。x和Pyhon3。X
1、print函数:
(1)2.X
在打印功能后加一个空格,然后直接写要输出的内容。输出内容可以是任何Python数据,包括None。例如:
a=10
b=xyz
c=无
打印a、b、c
(2)3.X
在print函数之后,用括号将输出括起来,例如:
a=10
b=xyz
c=无
打印(a、b、c)
2、input函数
(1)2.X
有两个输入函数,input()和raw_input()。
input()函数只能输入数值,可以是整数,也可以是浮点数,不能输入字符串。输入信息根据数字类别进行处理,例如:
x=输入(请输入一个数字:)
如果输入10,那么变量x就是数字10。如果您输入abc,此时将会报告一个错误。
raw _ input()函数可以输入字符和数字,但结果都被当作字符串,比如:
x=raw_input(请输入您的信息:)
如果输入10,那么变量x就是字符串“10”。如果输入abc,X变量就是字符串‘ABC’。
(2)3.X
input()函数只有一个,意思和2的raw_input()一样。也就是说,你输入的任何东西都被当作一个字符串。例如:
x=input(请输入您的信息:)
如果输入10,那么变量x就是字符串“10”。如果输入abc,X变量就是字符串‘ABC’。
注意:如果你需要输入一个数值呢?你需要使用cast,int()或者float(),例如:
x=int(input(请输入一个数字:))
这时如果输入10,变量x就是10的值,如果输入abc,就会得到错误。特别是,当您输入9.8(浮点数)时,会得到一个错误。
另一个例子:
x=float(输入(请输入一个数字:))
此时,如果输入9.8,x是9.8,如果输入10,x是10.0,不会报错,但如果输入abc,程序会报错。
3、网络发送和接收函数send() ,recv(),sendto(),recvfrom()
(1)2.X
例如,您可以直接发送和接收字符串,而无需编码和解码
data=clientsock.recv(1024)
打印(数据)
此时,数据是一个字符串,如果套接字接收到hello消息,数据就是字符串 hello 。
另一个例子:
data=很高兴见到你
clientsock.send(数据)
去做吧。
recvfrom和sendto也是如此。
(2)3.X
而sendto,需要对字符串进行编码,recv和recvfrom需要对接收到的数据进行解码,例如:
Data=clientsock.recv(1024) #此时的数据是字节序列,而不是字符串。
Print(data.decode())#要输出这个内容,需要使用decode方法对其进行解码。
另一个例子:
data=很高兴见到你
client sock . send(data . encode())#发送时,需要对字符串进行编码。
4、异常处理try……except的格式
(1)2.X
格式是:
尝试:
clientsock.send(数据)
Exceptioin,e:除外
打印(“错误”)
注意红色字体部分和3.x不一样。
(2)3.X
格式是:
尝试:
clientsock.send(数据)
Exceptioin as e:除外
打印(“错误”)
注:无异常时,格式为2。x和3。x也一样。
5.一些系统包有不同的名称。比如2.x中有一个socketserver包,注意它包含两个大写的S,而3中的包名。x是SocketServer。出现这种情况时,可以用搜索的方法找到相关的数据包,在不同的环境下对应它们的名字就足够了。
6.2.x不直接支持中文。如果需要使用中文,需要加载代码。3.x可以直接支持中文。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。