python cannot import name,python2.7個3.7之間傳輸文件_關于將python2.7轉換為python3.7的說明,python

 2023-11-10 阅读 28 评论 0

摘要:1.print函數print語句沒有了,取而代之是print()函數python cannot import name,2.編碼python2默認編碼是assciipython3默認編碼是UTF-8python 傳入參數、這樣不再需要在文件頂部寫# coding=utf-83.字符串python2中字符串有兩個類型python3哪個版本好用、unicode?表

1.print函數

print語句沒有了,取而代之是print()函數

python cannot import name,2.編碼

python2默認編碼是asscii

python3默認編碼是UTF-8

python 傳入參數、這樣不再需要在文件頂部寫# coding=utf-8

3.字符串

python2中字符串有兩個類型

python3哪個版本好用、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'

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/169939.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息