python2.7个3.7之间传输文件_关于将python2.7转换为python3.7的说明,python27,python37,散记...

1.print函数

print语句没有了,取而代之是print()函数

2.编码

python2默认编码是asscii

python3默认编码是UTF-8

这样不再需要在文件顶部写# coding=utf-8

3.字符串

python2中字符串有两个类型

unicode 表示文本字符串

str 表示字节序列

python3做了严格区分

str 表示字符串

byte 表示字节序列,任何需要写入文本或者网络传输的数据都只接收字节序列,阻止了编码错误的问题。

3.range

python2的range和xrange,在python3中合并成了range

4.字典的dict.keys(),dict.values(),dict.items()不再返回列表

而是一个类似迭代器的view对象返回。

a = {'a':'aaa','b':'bbb'}

for x in a.items():

print(x)

#输出

('a', 'aaa')

('b', 'bbb')

5.除法1/2 结果是0.5,不再是0

6.long重命名为int

python3彻底废弃了long+int双整数实现的方法,统一为int,支持高精度整数运算。

7. except Exception, e变成except (Exception) as e

8. for循环变量不会再导致命名空间泄露

i = 1

[i for i in range(3)]

print(i)

#输出为1,而在python2中输出为2

但是如下情况并没有变化

>>> j = 0

>>> for j in range(3):

... print(j)

...

0

1

2

>>> j

2

9.继承

class A:

def __init__(self):

print("A")

​class B(A):

pass

​class C(A):

def __init__(self):

print("C")

​class D(B,C):

pass

d1 = D()

Python2 结果为 A,Python3 结果为 C。

python2 的继承顺序是 D -> B -> A -> C 深度优先 python3 的继承顺序是 D -> B -> C -> A 广度优先

10.模块改名

httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib放进了http里面

urllib

, urllib2, urlparse, robotparse放进了

urllib

里面

11.如果在python2中使用python3的语法则可以使用__futrue__

如想要1/2为0.5可以如下

>>> from __future__ import division

>>> 1/2

0.5

12. 迭代器的 .next()属性报错

>>> a = (i for i in 'abc') #圆括号生成迭代器

>>> next(a)

'a'

>>> a.next()

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'generator' object has no attribute 'next'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值