2.2 Python2 vs Python3
2018-11-22 本文已影响0人
要树立远大的理想
准备自学Python,选择哪个版本呢?
支持Python2的理由
- 公司目前使用Python2
- 大部分参考资料均是Python2版本
支持Python3的理由
- Python3是以后的趋势
经过仔细的斟酌后,其实就是看知乎的帖子后决定,还是要从Python3入手。
1. Python2 -> Python3 最显著的坑
1.1 print
1.1.1 屏幕输出
Python2
print "Hello World!"
或
print("Hello World!")
Python3
print("Hello World!")
1.1.2 屏幕不换行输出
Python2
print "Hello World!",
Python3
print("Hello World!",end='')
1.2 input
Python2存在两个函数接收命令行输入,分别是input() ,raw_input() 。
Python3为了规范,只保留了input() ,接收你输入的任何内容。
1.2.1 input(Python2 vs Python3)
Python2的input接收值或变量
- 输入2,接收的是整数型的2
- 输入Hello,接收的是变量Hello,而不是字符串!如果想要得到的字符串需要加上引号,并且如果没有定义过这个变量,程序就会报错。
- 输入True,接收的就是布尔类型的True
Python3的input接收输入的字符串
- 如果想要得到整数值,使用int(input())
1.2.2 raw_input(Python2)
接收输入的任何内容,输出均为字符串
- 输入2,接收的是字符串2,而不是整数型2
除上述的两个不同之外,还有很多就不一一列举了,下面简要的列出来
- 打开文件不再支持 file 方法,只能用 open
- range不再返回列表,而是一个可迭代的range对象
- 除法 / 不再是整除,而是得到浮点数,整除需要用双斜杠 //
- urllib和urllib2合并成了urllib,常用的urllib2.urlopen()变成了urllib.request.urlopen()
- 字符串及编码相关有大变动,简单来说就是原来的str变成了新的bytes,原来的unicode变成了新的str。