python3(python编译器)
今天给各位分享python3的知识,其中也会对python编译器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
python和python3的区别
1.性能
Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可
以取得很好的优化结果。
Py3.1性能比Py2.5慢15%,还有很大的提升空间。
2.编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
>>>中国='china'
>>>print(中国)
china
3.语法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)关键词加入as和with,还有True,False,None
4)整型除法返回浮点数,要得到整型结果,请使用//
5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量
6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
例如:
2.X: print"The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x,#使用逗号结尾禁止换行
3.X: print(x, end="")#使用空格代替换行
2.X: print#输出新行
3.X: print()#输出新行
2.X: print>>sys.stderr,"fatal error"
3.X: print("fatal error", file=sys.stderr)
2.X: print(x, y)#输出repr((x, y))
3.X: print((x, y))#不同于print(x, y)!
7)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值
8)输入函数改变了,删除了raw_input,用input代替:
2.X:guess= int(raw_input('Enter an integer:'))#读取键盘输入的方法
3.X:guess= int(input('Enter an integer:'))
9)去除元组参数解包。不能def(a,(b, c)):pass这样定义函数了
Python3的关键字有哪些
①and、or、not
and、or、not关键字都是逻辑运算符,用法如下:
and:如果两个语句都返回True,则返回值将仅为True,否则它将返回False。
or:如果其中一条语句返回True,则返回值为True,否则它将返回False。
not:如果语句不是True,则返回值为True,否则返回False。
②if、elif、else
if、elif、else主要用于条件语句,用法如下:
if:用于创建条件语句,并且仅当条件为True时,才允许执行if代码块。
elif:在条件语句中使用,是else if的缩写。
else:在条件语句中使用,并确定在if条件为False时该执行的代码。
③for、while
for、while主要用于定义一个循环,用法如下:
for:用于创建一个for循环,它可以用来遍历序列,例如列表、元组等。
while:用于定义while循环,while循环将继续,直到while的条件为False。
④True、False
True、False是比较操作返回的结果,用法如下:
True:关键字True与1相同。
False:关键字False与0相同。
⑤continue、break
continue、break主要用在for循环和while循环中,用法如下:
continue:continue关键字用于在for循环中结束当前迭代,并继续进行下一个迭代。
break:break关键字用于中断for循环或while循环。
⑥pass
pass语句用作将来代码的占位符。当执行pass语句时,不会有任何影响,只是占位作用代表空白代码,但是,如果你不写任何东西,就会报错。循环,函数定义,类定义或if语句中不允许使用空代码,则可以使用pass。
⑦try、except、finally、raise
try、except、finally、raise都是与异常有关的关键词,用法如下:
try:在try……except块中使用,它定义了一个代码块,并在没有问题的情况下执行块。如果包含任何错误,可以为不同的错误类型定义不同的块。
except:在try……except块中使用。如果try块引发错误,并在有问题的情况下执行对应的代码块。
finally:在try……except块中使用。它定义了一个代码块,当try……except……else块结束时,该代码块将运行。无论try块是否引发错误,都将执行finally代码块。
raise:raise关键字用于引发异常,可以定义引发哪种错误,以及向用户显示错误信息。
Python关键字有许多,这里就不为大家一一介绍了。
python3和Python2的区别
在python3把python2中好多原本是函数的变成了类,比如open,input,还有就是2中的输入函数有两个,而3中统一为input,输出在2中是语句,但是3中变成了函数,操作起来更为方便,运算呢,就是把除法和取余额额符号互换了,还有其他很多区别,比如很多类对象没有了,但一般能用到的就是我提到的这些。
程的话最重要的是编程思想,Python3和Python2,它的思想基本是共通的,只是少量的语法差异。而编程中,语法只是细枝末节的东西。无论你学2还是3,都没有区别。会Python的人,一般2和3都会。当你学会了3,只要稍微花上一点时间学习2的语法,那么两门语音你都会了!
1.print函数:print不再是语句,而是函数(Python3中print为一个函数,必须用括号括起来;Python2中print为class)。比如原来是 print'abc'现在是 print('abc')
Python 2的 print声明已经被 print()函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。
2.在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass显式地子类化object
但是最好还是加上.主要区别在于 old-style是 classtype类型而 new-style是 type类型
3.新的字符串格式化方法format取代%
错误,从 python2.6+开始已经在str和unicode中有该方法,同时 python3依然支持%算符
4. xrange重命名为range
同时更改的还有一系列内置函数及方法,都返回迭代器对象,而不是列表或者元组,比如 filter, map, dict.items等
5.long重命名为int
不完全对, python3彻底废弃了 long+int双整数实现的方法,统一为 int,支持高精度整数运算.
6.exec变成函数
类似print()的变化,之前是语句.
7.通过input()解析用户的输入:(Python3中input得到的为str;Python2的input的到的为int型,Python2的raw_input得到的为str类型)统一一下:Python3中用input,Python2中用row_input,都输入为str
幸运的是,在 Python 3中已经解决了把用户的输入存储为一个 str对象的问题。为了避免在 Python 2中的读取非字符串类型的危险行为,我们不得不使用 raw_input()代替。
8.整除:(没有太大影响)(Python3中/表示真除,%表示取余,//表示地板除(结果取整);Python2中/表示根据除数被除数小数点位得到结果,//同样表示地板除)统一一下:Python3中/表示真除,%表示取余,//结果取整;Python2中带上小数点/表示真除,%表示取余,//结果取整
9.xrange模块:
在Python 3中,range()是像 xrange()那样实现以至于一个专门的 xrange()函数都不再存在(在 Python 3中xrange()会抛出命名异常)。
在Python 2中 xrange()创建迭代对象的用法是非常流行的。比如: for循环或者是列表/集合/字典推导式。
这个表现十分像生成器(比如。“惰性求值”)。但是这个 xrange-iterable是无穷的,意味着你可以无限遍历。
由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange()函数比 range()更快(比如 for循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。
简单补充下
主要是类库的变化,组织结构变了些.但功能没变. urlparse-> urllib.parse这样的变化
最核心的变化它没有说,对 bytes和原生 UNICODE字符串的支持,删除了 unicode对象, str为原生 unicode字符串, bytes替代了之前的 str这个是最核心的
好了,文章到此结束,希望可以帮助到大家。