python2
‘壹’ python中n%2是什么意思
% 是python 运算符 返回余数
n 是 变量 number
n % 2 可以用来判断 n 是否被 2 整除,检测奇,偶数。
‘贰’ python2和python有什么区别
很多初学者刚开始学python的时候,一定都遇到过这个问题,python的世界有2个版本,python2 和 python3 ,而且有些语法还不兼容.怎么办~~到底应该选择哪个版本来开发呢?好,今天我们就来聊聊这个话题.
1.Python2和Python3的历史背景
Python语言是在20世纪90年代诞生的,算算到现在已经是25岁的大叔级的语言了(跟它同一个时代的还有一个鼎鼎大名的java是在1995发行的, 红了几十年).
但是Python真正成名比java晚了很多年,其实也主要是应用领域的时代变迁.(猜测为啥,对了大数据的出现)
Python2是Python里面一个非常重要的版本,最早的版本是从2001的时候开始的,特别是从2006年开始py2.5的发布,python的功能逐渐强大起来,慢慢开始稳定下来,并且差不多1-2年左右递增一个版本,在08年左右开始慢慢的火起来了.
而Python3最早是从2008开始发布,但是py3.0的版本非常不稳定,所以社区更新的很快,差不多几个月就更新一次。所以一开始的时候并没有很多人用,只到2014春暖花开的时候python3.4 deliver了才开始慢慢稳定下来.
下面我们看一个数据,这是Python社区联和一些网站在2014做的一个调查,关于Python2/3,部分的结果如下:
1).97.51%用户还在写Python2的代码
2).60%的用户写Python3的代码
3).78.09%的用户更多地写Python2代码
4).77.09%的用户认可Python3
目前有一些Linux里的操作系统已经默认使用Python3:
1).Arch Linux (轻量级的Linux操作系统)
2).Ubuntu 16.04 (一个桌面应用为主的Linux操作系统)
3).Fedora(Redhat桌面版本的延续)
2.Python2和Python3的主要区别:
目前最新的数据是,Python有两个版本:一个是2.7.12版,一个是3.5.12版.
那么Python2运行的好好的,为啥突然要出个Python3呢,其实是为了解决Python2里面一些历史问题
第一个是字符串的问题:
Python 2 中文本和二进制数据是一个烂摊子,Python中的str 是代表二进制数据还是文本数据是有二义性,文字既能代表文本数据又能代表二进制数据这很麻烦,此类错误发生的时候,我们很难意识到。
第二个是对Unicode的支持
由于python是在1991年2月开源发布,这意味着它早于在1991年10月发布的第一版 Unicode 标准。在接下来几年中,晚于 Unicode 标准出现的语言都选择在支持 Unicode 编码的基础上实现自己的 str 类型,这让 Python 2 处于尴尬的境地。
目前是一个python2/3共存的时代,这两个版本是不兼容的。
python2现在只是做bug的修复,新硬件和操作系统兼容的相关维护工作。不会再有新的功能加入,python2只支持到2020年.
现在Python正在朝着3版本进化,在进化过程中,大量的针对2.x版本的代码要修改后才能运行,所以目前有许多第三方库还暂时无法在3.x上使用。
不过可以畅想一下,也许再过几年情况就会好很多,毕竟全世界有很多优秀的程序员正在把一些库从Py2往Py3上迁移.
3.选择还是要根据自己的需求
若是企业的开发,要满足工作的需求,尤其是依赖的软件只能运行在Python2下,首选Python2.比如你的开发需要依赖大量的第三方的库(因为学Python非常大的一个原因就是因为它有成千上万的第三方包),像大量的数据分析,科学计算,还是选Python2吧.
如果你是自己学习,研究的话,愿意拥抱变化,那么建议学Python3,因为它是未来的方向.
结论:
编程其实主要是对编程思想的理解和经验的积累,千万不要因为纠结学Py2还是Py3而浪费大量时间。
Py2和Py3里面的思想基本是相通的,招式是类似的.当你熟悉Python到一定的程序的时候,会Py2的人学Py3只需要很短的时间。
所以不要再纠结细枝末节的语法差异,而耽误了宝贵的学习时间。
好了Python2和Python3的恩怨情仇就讲到这里啦(它们还要相爱相杀一段时间),希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.
最后说一下,原创不易,希望大家能够给点支持,欢迎转发,留言,也是对我的一点鼓励和动力.
‘叁’ python中2*=3是什么意思
语法错误
如果是 a *= 3 的话, 表示a=a*3, 左值必须要是变量才可以
‘肆’ Python 2**2**3=256
解析:
**表示幂运算,优先级是右结合,a ** b即求a的b次方。
右结合的意思是说多次幂运算先递归计算右边的结果:a ** b ** c = a ** ( b ** c)。
所以2 ** 2 ** 3 = 2 ** (2 ** 3) = 2 ** 8 = 256。
(4)python2扩展阅读:
Python的表达式写法与C/C++类似。只是在某些写法有所差别。
主要的算术运算符与C/C++类似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。
>>, <<表示右移和左移。&, |, ^表示二进制的AND, OR, XOR运算。>, <, ==, !=, <=, >=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~, |, ^, &, <<, >>必须应用于整数。
Python使用and, or, not表示逻辑运算。
is, is not用于比较两个变量是否是同一个对象。in, not in用于判断一个对象是否属于另外一个对象。Python支持“列表推导式”(list comprehension)。
‘伍’ python中python2和python3之间怎么转换
python中python2和python3之间的转换方式如下:
一、放弃python 2.6之前的python版本
python 2.6之前的python版本缺少一些新特性,会给你的迁移工作带来不少麻烦。如果不是迫不得已还是放弃对之前版本的支持吧。
二、使用 2to3 工具对代码进行检查和转换
2to3是python自带的一个代码转换工具,可以将python2的代码自动转换为python3的代码。当然,不幸的是转换出的代码并没有对python2的兼容做任何的处理。所以我们并不真正使用2to3转换出的代码。执行2to3.py 查看输出信息,并修正相关问题。为了简化这个转换过程,这个脚本会将你的Python 2程序源文件作为输入,然后自动将其转换到Python 3的形式。
‘陆’ python2和python3的区别
简单的说,2是旧3是新,3是2的升级版,3完全高于2,2是时代的眼泪3是现在和未来,2逐渐被淘汰3用的人越来越多。
之前两个版本共存只是因为诸多package的更新换代并没有跟上,但是到了现在只要还有活人维护的package基本都兼容3了,然而新建的package却越来越多不兼容2。使用2的意义基本没有了,日常用3大不了留一个2备用就行。
‘柒’ python 2**2**0
python中定义的指数运算的优先级是从右到左,可以参考python的官方文档 5.4节《指数运算》(http://docs.python.org/2/reference/expressions.html#the-power-operator)。
根据这条定义,2**2**0=2**(2**0)=2**1=2
如果想要得到1的答案,就需要用括号强调从左到右的运算顺序,(2**2)**0=4**0=1
‘捌’ python2和python的区别
1.print不再是语句,而是函数,比如原来是print'abc'现在是print('abc')
但是python2.6+可以使用from__future__importprint_function来实现相同功能
2.在Python3中,没有旧式类,只有新式类,也就是说不用再像这样classFoobar(object):pass显式地子类化object
但是最好还是加上.主要区别在于old-style是classtype类型而new-style是type类型
3.原来1/2(两个整数相除)结果是0,现在是0.5了
python2.2+以上都可以使用from__future__importdivision实现改特性,同时注意//取代了之前的/运算
4.新的字符串格式化方法format取代%
错误,从python2.6+开始已经在str和unicode中有该方法,同时python3依然支持%算符
5.xrange重命名为range
同时更改的还有一系列内置函数及方法,都返回迭代器对象,而不是列表或者元组,比如filter,map,dict.items等
6.!=取代<>
python2也很少有人用<>所以不算什么修改
7.long重命名为int
不完全对,python3彻底废弃了long+int双整数实现的方法,统一为int,支持高精度整数运算.
8.exceptException,e变成except(Exception)ase
只有python2.5及以下版本不支持该语法.python2.6是支持的.不算新东西
9.exec变成函数
类似print()的变化,之前是语句.
简单补充下
*主要是类库的变化,组织结构变了些.但功能没变.urlparse->urllib.parse这样的变化
*最核心的变化它没有说,对bytes和原生UNICODE字符串的支持,删除了unicode对象,str为原生unicode字符串,bytes替代了之前的str这个是最核心的.
*其它...貌似不怎么重要了.
‘玖’ python语言中:[:-2]是什么意思
丢弃序列的最后两个字符。
比如a=[1,2,3,4,5,6]
print(a[:-2])
‘拾’ Python3和Python2的区别
具体区别如下
1:打印时,py2需要可以不需要加括号,py3 需要python 2 :print ('lili') , print 'lili'python 3 : print ('lili') python3 必须加括号exec语句被python3废弃,统一使用exec函数
2:内涵
Python2:1,臃肿,源码的重复量很多。 2,语法不清晰,掺杂着C,php,Java的一些陋习。
Python3:几乎是重构后的源码,规范,清晰,优美。
3: 输出中文的区别python2:要输出中文 需加 # -*- encoding:utf-8 -*-Python3 :直接输出
4:input不同python2 :raw_input python3 :input 统一使用input函数
5:指定字节python2在编译安装时,可以通过参数-----enable-unicode=ucs2 或-----enable-unicode=ucs4分别用于指定使用2个字节、4个字节表示一个unicode;python3无法进行选择,默认使用 ucs4查看当前python中表示unicode字符串时占用的空间:impor sysprint(sys.maxunicode)#如果值是65535,则表示使用usc2标准,即:2个字节表示#如果值是1114111,则表示使用usc4标准,即:4个字节表示
6:py2:xrangerangepy3:range 统一使用range,Python3中range的机制也进行修改并提高了大数据集生成效率
7:在包的知识点里包:一群模块文件的集合 + __init__区别:py2 : 必须有__init__py3:不是必须的了
8:不相等操作符"<>"被Python3废弃,统一使用"!="
9:long整数类型被Python3废弃,统一使用int
10:迭代器iterator的next()函数被Python3废弃,统一使用next(iterator)
11:异常StandardError 被Python3废弃,统一使用Exception
12:字典变量的has_key函数被Python废弃,统一使用in关键词
13:file函数被Python3废弃,统一使用open来处理文件,可以通过io.IOBase检查文件类型