一.学习Python2还是Python3?
- Python2 只维护到2020年。
- Python官方都是建议直接学习Python3,Python3才是Python的未来。
- 实际上不管Python2还是Python3都要学习,一是公司业务需求,二是Python2和Python3确实有一些差异,但是,并没有想象的那么大。
- 学习Python前,先了解在Python3里面已经弃用的Python2语法。
二.编码
Python2中默认是ASCII编码,需要更改字符集才能正常支持中文,所以在我们使用的很多.py文件中会看到:# -- coding: utf-8 --
>>>str = "梦想还是要有的"
>>>str
'\xe6\xa2\xa6\xe6\x83\xb3\xe8\xbf\x98\xe6\x98...'
>>>str = u'梦想还是哟的'
>>>str
u'u68a6\u60f3\u8fd8\662f\u8981\u6709\u7684'
Python3中字符串是Unicode(utf-8)编码,支持中文做标识符。
>>>str = "梦想还是要有的"
>>>str
"梦想还是要有的"
由于python3源码文件默认使用utf-8编码,这就使得以下代码合法的:
>>>梦想 = "dream"
>>>梦想
"dream"
三.语法
3.1. print函数
在python2中print是一个语句,无论想输出什么,只要将它们放在print关键后边就可以。Python3中print为一个函数,跟其他函数一样,print()需要将输出的东西作为参数传递给它。
python2:
print “The answer is”, 22 使用逗号结尾禁止换行, 在python2中,使用一个逗号(,)作为print语句的结尾,它将会用空格分隔输出结果,然后在输出一个尾随的空格,而不是输出回车。
print(“The answer is”, 22)(统一:使用这种,兼容python3)
>>>print "The answer is", 2*2
The answer is 4
>>>print("The answer is", 2*2)
("The answer is", 4)
>>>print
>>>
python 3:
print(“The answer is”, 2*2) 在python3中,print(x, end=“ ”)通过把end=“ “作为一个关键字参数传给print()可以实现同样的效果。参数end的默认值为”\n”,所以通过重新指定end参数的值,可以取消在末尾的输出回车符。Python3 去除print语句,加入print()函数实现相同的功能。
>>>print("The answer is", 2*2)
The answer is 4
>>>print()
>>>
3.2. input函数
Python3中删除了raw_input,用input代替,Python2有两个全局函数,用来在命令行请求用户输入。第一个是input(),它等待用户输入一个python表达式(然后返回结果),第二个是raw_input(),用户输入什么它就返回什么。 Python2的input得到的为int型,Python2的raw_input得到的为str类型。(统一:Python3中用input,Python2中用raw_input, 都输入为str)
python2:
my_input = input("enter a number: ")
enter a number:123
>>>type(my_input)
<type 'int'>
>>>my_input = raw_input("enter a number: ")
enter a number: 123
>>>type(my_input)
<type 'str'>
python3:
my_input = input(“enter a number: ”) #如果想要请求用户输入一个python表达式,计算结果可以通过调用input()函数后把值传递给eval()
>>>my_input