Python 2 和 Python 3 的区别
(๑•́ ₃ •̀๑)エー
1. Print 语句
- Python 2:
print
是一个语句,不需要括号。print "Hello, World!"
- Python 3:
print
是一个函数,需要括号。print("Hello, World!")
2. Unicode 支持
- Python 2: 文本字符串和 Unicode 字符串是不同的类型,Unicode 字符串需要前缀
u
。s = "Hello, World!" u = u"Hello, World!"
- Python 3: 所有字符串默认都是 Unicode。
s = "Hello, World!"
3. 整数除法
- Python 2:
/
操作符执行整数除法,如果两个操作数都是整数的话。# 结果是 2 result = 10 / 5
- Python 3:
/
操作符执行浮点除法,即使两个操作数都是整数。# 结果是 2.0 result = 10 / 5
4. Range 函数
- Python 2:
range()
返回一个列表,xrange()
返回一个迭代器。r = range(5) # 返回 [0, 1, 2, 3, 4] x = xrange(5) # 返回 xrange(5) 对象
- Python 3:
range()
返回一个迭代器,类似于 Python 2 中的xrange()
。r = range(5) # 返回 range(0, 5) 对象
5. 异常处理
- Python 2: 可以使用逗号来分隔异常名称和值。
raise IOError, "file error"
- Python 3: 必须使用括号来创建异常对象。
raise IOError("file error")
6. 输入函数
- Python 2:
raw_input()
用于获取字符串输入,input()
会计算输入的表达式。name = raw_input("Enter your name: ")
- Python 3:
input()
用于获取字符串输入,Python 2 的input()
在 Python 3 中被移除。name = input("Enter your name: ")
7.字典的 .iteritems()
方法
- Python 2: 使用
.iteritems()
来迭代字典。for key, value in my_dict.iteritems(): print key, value
- Python 3:
.iteritems()
被移除,使用.items()
替代。for key, value in my_dict.items(): print(key, value)
8.xrange()
函数
- Python 2: 使用
xrange()
生成数字序列。for i in xrange(5): print i
- Python 3:
xrange()
被移除,使用range()
替代。for i in range(5): print(i)
9.异常捕获语法
- Python 2: 使用逗号分隔异常类型和变量。
try: # 代码块 except Exception, e: print e
- Python 3: 使用
as
关键字。try: # 代码块 except Exception as e: print(e)
10.basestring
抽象类
- Python 2: 使用
basestring
作为str
和unicode
的抽象类。isinstance("Hello", basestring)
- Python 3:
basestring
被移除,使用str
替代。isinstance("Hello", str)
11.file
类型
- Python 2: 使用
file
类型打开文件。f = file('myfile.txt', 'r')
- Python 3:
file
类型被移除,使用open()
函数替代。f = open('myfile.txt', 'r')
12.next()
方法和 __next__
方法
- Python 2: 自定义迭代器使用
next()
方法。class MyIterator: def next(self): # 返回下一个值
- Python 3:
next()
方法被重命名为__next__()
。class MyIterator: def __next__(self): # 返回下一个值
13.编码
- Python 2: 显式处理字符串编码和解码。
unicode_string = u"你好" encoded_string = unicode_string.encode('utf-8')
- Python 3: 字符串默认为 Unicode,编码和解码更加直观。
string = "你好" encoded_string = string.encode('utf-8')
源:
(1)Maya API - TD Series -- How to connect PyCharm to Maya 2022 - Python 3 & 2. https://www.bilibili.com/video/BV14L411c7Y8/?uid=425631344C34313163375938.
(2)【Maya】Esteban《Maya 2022 中的 Python 3 介绍》(中英双字). https://www.bilibili.com/video/BV1Kv411E76q/?uid=4256314B7634313145373671.
(3)Introduction to Python Programming for Maya Animators. https://en.git.ir/udemy-introduction-to-python-programming-for-maya-animators/.
(4)How to Automatically Convert Python 2 to Python 3 for Maya. https://lesterbanks.com/2021/03/how-to-automatically-convert-python-2-to-python-3-for-maya/.
(5)Maya2022andPython3-Tech-Artists.Org. https://discourse.techart.online/t/maya-2022-and-python3/13706.
(6)MigratingtoPython3-AutodeskKnowledgeNetwork. https://help.autodesk.com/cloudhelp/2022/ENU/Maya-WhatsNewPR/files/GUID-3F136830-279D-4E98-AA6C-A3A0577CBE2B.html.
(7)Operating System, Python, and PyMEL Updates - Autodesk Knowledge Network. https://help.autodesk.com/cloudhelp/2023/ENU/Maya-WhatsNewPR/files/GUID-DF43840B-4DB1-43F8-BFD1-97D8D031B91D.html.
(8)undefined. https://youtu.be/rZOmLLdyvDQ.
(9)undefined. https://t.co/LR9kfjwUe4.
(10)undefined. https://t.co/HO2zyZMvDe.
(11)TXT to MD | CloudConvert. https://cloudconvert.com/txt-to-md.
(12)Online TEXT to MARKDOWN Converter - Vertopal.
https://www.vertopal.com/en/convert/text-to-markdown.