Python 3.x 新特性及10大变化
Python 3是Python语言的一个主要版本,它在语言基础、标准库以及各种工具和模块上都引入了许多新特性。以下是Python 3.x相对于Python 2.x的主要变化:
1. print函数
在Python 2.x中,print语句是一个语句,不是一个函数,它通常带有一个逗号分隔的参数列表,例如 print "Hello, world!"
。但是在Python 3.x中,print被重新定义为一个函数,它可以像其他函数一样使用,例如print("Hello, world!")
。这使得它更加灵活,并且可以在函数调用中使用括号和参数列表。
示例代码:
# Python 2.x中的print语句
print "Hello, world!"
# Python 3.x中的print函数
print("Hello, world!")
2. Division
在Python 2.x中,整数除法使用的是一种称为“ floor division(地板除)”的除法,例如5/2
的结果是2。但是在Python 3.x中,整数除法使用的是一种称为“ true division(真正的除法)”的除法,例如5/2
的结果是2.5,就像期望的那样。
示例代码:
# Python 2.x中的整数除法
print 5/2 # 输出2
# Python 3.x中的整数除法
print 5/2 # 输出2.5
3. Unicode
在Python 3.x中,字符串默认使用Unicode编码。这意味着我们可以在字符串中使用任何语言的任何字符,而不必担心编码问题。
示例代码:
# 使用Unicode字符串
print("这是一个中文字符串")
4. range()函数
在Python 3.x中,range()函数返回一个范围对象,而不是一个列表。这使得操作非常高效,尤其是当我们需要生成大量数字时。
示例代码:
# 使用Python 2.x中的range()函数
for i in range(10):
print i
# 使用Python 3.x中的range()函数
for i in range(10):
print(i)
5. 输入函数
在Python 3.x中,输入函数被重新定义为一个函数,它可以像其他函数一样使用,例如input("请输入一个字符串:")
。在Python 2.x中,输入函数是一个语句,不带括号。
示例代码:
# 使用Python 2.x中的输入函数
name = raw_input("请输入您的姓名:")
print "您好," + name
# 使用Python 3.x中的输入函数
name = input("请输入您的姓名:")
print("您好," + name)
6. 函数参数
在Python 3.x中,函数定义中的参数支持一种称为“仅限关键字参数”的新语法。这意味着我们可以将某些参数标记为“仅限关键字参数”,这些参数只能通过关键字参数传递,而不能通过位置参数传递。
示例代码:
# 使用仅限关键字参数
def print_info(name, *, gender):
print("姓名:" + name)
print("性别:" + gender)
print_info("张三", gender="男")
7. 异常捕获
在Python 3.x中,raise语句的语法发生了变化。现在我们可以在raise语句中使用三个参数,分别是异常类、异常实例和 traceback 对象。
示例代码:
# 在Python 3.x中使用三个参数的raise语句
try:
1/0
except ZeroDivisionError as e:
raise ZeroDivisionError("除数不能为0") from e
8. 协程
Python 3.x对协程的支持进行了改进,引入了async/await关键字,使得协程的定义和使用更加简单和直观。
示例代码:
````python
使用async/await定义协程
async def get_data(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
data = await get_data("https://www.baidu.com")
## 9. 字典和集合推导式
在Python 3.x中,字典和集合推导式(dictionary and set comprehensions)的语法进行了改进,支持更加灵活的表达式和更加简洁的语法。
示例代码:
```python
# 字典推导式
data = {k: v for (k, v) in zip(keys, values)}
# 集合推导式
data = {x for x in numbers if x % 2 == 0}
10. 标准库改进
Python 3.x对许多标准库进行了改进,使得它们更加高效、可扩展和易于使用。例如,asyncio库引入了异步I/O支持,unittest库引入了更加便捷的用例管理和加载,venv模块引入了虚拟环境支持。
示例代码:
# 使用asyncio库进行异步I/O编程
async def get_data(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
data = await get_data("https://www.baidu.com")
总之,Python 3.x带来了许多令人激动的新功能和改进,使得Python编程更加快速、高效和易于使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 3.x 新特性及10大变化 - Python技术站