python 3.7 for 迭代: range

Python循环与范围示例
本文通过多个示例展示了Python中使用for循环遍历列表和范围的基本语法,包括打印列表中的单词和数字,以及如何使用range函数生成数字序列。
例子1:
words = ['this','is','an','ex','parrot']

for word in words:
    print(word)

log

this
is
an
ex
parrot

例子2:
numbers = [0,1,2,3,4,5,6,7,8,9]

for number in numbers:
    print(number)

log:

0
1
2
3
4
5
6
7
8
9
例子3:
tt = range(0,10)

print(type(tt))

print(range(0,10))

print(tt)

log:

<class 'range'>
range(0, 10)
range(0, 10)
例子4:
tt = range(0,10)

print(type(tt))

print(range(0,10))

print(tt)
print("One")
for number in range(1,5):
    print(number)
print("Two")
for number in range(0,5):
    print(number)
print("Three")
for number in range(5):
    print(number)
print("Four")

log输出:

<class 'range'>
range(0, 10)
range(0, 10)
One
1
2
3
4
Two
0
1
2
3
4
Three
0
1
2
3
4
Four

参考<python基础教程 第2版>

<think> 我们被要求回答关于Python 3.73.9版本区别的问题,并在最后提出3-5个相关问题。 首先,总结两个版本的主要区别。Python 3.9是3.7的后续版本,因此会有一些新特性、优化以及弃用和移除的内容。 主要区别包括: 1. 新特性: - 3.9引入了字典合并与更新运算符(|和|=) - 类型提示的改进(如:`list` 可以直接作为类型注解,而不必从`typing`导入List) - 新的字符串方法(`removeprefix`和`removesuffix`) - 新的解析器(PEG解析器,为未来的语法特性做准备) 2. 标准库的变化: - 新增模块如`zoneinfo`(时区支持)和`graphlib`(拓扑排序) - 一些模块被改进或弃用 3. 性能优化: - 3.9在多个方面进行了性能提升,例如内置函数和操作的速度提升 4. 其他变化: - 取消了一些已弃用的功能和特性 - 语法上的小改动(例如,在函数参数中允许使用`*`和`**`的更一般化位置) 注意:虽然有一些新特性,但大多数3.7的代码在3.9上应该可以运行。但是,如果使用了被弃用的特性,则可能需要修改。 接下来,按照格式要求,在回答后提出3-5个相关问题,并以“§§相关问题§§”开头。 我们给出4个相关问题: 1. Python 3.9中引入的字典合并运算符如何使用? 2.Python 3.7迁移到3.9需要注意哪些兼容性问题? 3. 为什么Python 3.9要引入PEG解析器,它有什么优势? 4. 在性能方面,Python 3.9相比3.7有哪些提升? 注意:问题应与主题相关,且基于我们的回答。 </think>### Python 3.73.9 的主要区别 Python 3.73.9 都是重要的版本迭代,核心语法兼容但存在显著差异: #### 1. **新特性与语法增强** - **3.9 新增字典合并运算符** `|` 和 `|=` 实现字典合并(替代 `{**d1, **d2}`): ```python d1 = {"a": 1} d2 = {"b": 2} merged = d1 | d2 # {"a":1, "b":2} ``` - **类型标注改进** - 3.9 支持原生类型注解(无需 `typing` 模块): ```python def greet(names: list[str]): ... # 3.9+ ✅ vs 3.7需 List[str] ``` - 新增 `typing.Annotated` 支持元数据注解 #### 2. **标准库更新** - **新模块引入** - `zoneinfo`:内置时区处理(替代第三方库) - `graphlib`:拓扑排序算法 - **字符串处理增强** 3.9 新增字符串方法: ```python "prefix_text".removeprefix("prefix_") # → "text" "text_suffix".removesuffix("_suffix") # → "text" ``` #### 3. **性能优化** - **解析器升级** 3.9 采用 **PEG 解析器**(替代 LL(1)),为未来语法特性铺路(如模式匹配) - **内置操作加速** `str.replace()`, `range` 迭代等操作提速 10-50% #### 4. **弃用与行为变更** - 3.9 移除旧版协议:`collections.abc` 替代 `collections` 部分抽象基类 - 3.9 废弃 `datetime.utcnow()`(改用带时区的 `datetime.now(timezone.utc)`) #### 5. **兼容性影响** - **升级建议**:多数 3.7 代码可在 3.9 直接运行 - **注意点**: - C 扩展模块需重新编译 - 使用已弃用API的代码需调整 > **总结**:3.9 在类型系统、语法简洁性、时区处理上提升显著,但无破坏性变更。性能敏感或依赖新特性项目建议升级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值