Python3.3与Python2.7的不同 笔记

来源:互联网 发布:备案域名后缀 编辑:程序博客网 时间:2024/05/17 04:37

基本只看过课件没看过书,有错请指正>o<

1.

print()函数

2.7 可以不加括号

3.3 貌似必须加括号


2.

文件对象的构造

2.7 file()或open()

3.3 open()


3.

raw_input()函数

2.7 有

3.3 没有。“input()取代了raw_input(),eval(input())与原先的input()效果基本相同。”

来自

http://zhidao.baidu.com/question/428156750.html


4.

socket.send()
2.7 参数可以是字符串
3.3 “python3.2 socket.send 修改,传送数据必须是bytes”
http://zhidao.baidu.com/question/255087930.html

把socket实验程序从2.7搬到3.3折腾了好一会>_<
主要的点是:
1) 本文的3.提到的,raw_input()被input()取代;
2) socket.send()只能发bytes类型了。我这里转bytes类型时使用了utf-8编码:
[python] view plaincopy
  1. tcpCliSock.send(bytes(oneStr,'utf-8'))  
bytes类型转为String类型,要指定编码类型来进行解码,以下两种方式都可以:
[python] view plaincopy
  1. print (data.decode('utf-8'))  
  2. #Or  
  3. print (str(data,'utf-8'))  
3) 中文还是不正常啊……