for....in....用于遍历一个对象所有的成员,比如列表中的每一项, 字符串中的每一个字符
for语句结构
# 基本结构
# for ... in ...:
# pass
# else:
# pass
遍历字符串
for i in "string":
print(i)
# 依次输出 s t r i n g 每个字符
遍历列表
lists = ["apple", "banana", "orange"]
for i in lists:
print(i)
# 输出 apple banana orange
# 遍历列表时,同时输出索引值
for index, value in enumerate(lists):
print(index,"=>", value)
遍历集合
sets = {1,2,3}
for i in sets:
print(i)
# 输出 1 2 3
字典遍历
dicts = {"a": 10, "b": 20, "c": 30}
for item in dicts.items():
print(item)
for语句注意事项
1. 与if语句一样,需要使用:结尾
for i in "string":
2. 与if语句一样,通过缩进来区分语句层级
3. 不要在循环过程修改遍历对象
# 在循环中修改遍历对象存在的问题
# 小明同学写了一个文件处理代码
# 将列表中的文件拷贝到另一个目录
file_lists = ["a.txt", "b.txt", "c.txt", "d.txt", "e.txt"]
for file_path in file_lists:
# 省略拷贝过程
print(file_path)
# 拷贝完成后,将文件路径从列表中删除
file_lists.remove(file_path)
# 错误分析,由于小明在遍历过程中修改了file_lists
# 因此实际上会有一部分文件没有完成拷贝,造成文件迁移失败
# 正确做法, 通过切片复制为一个新的列表
copy_lists = file_lists[:]
for file_path in copy_lists:
print(file_path)
file_lists.remove(file_path)
for... in ... else ... 结构
这里的else只要遍历完了就会执行,而不是遍历不成功
# for 语句遍历完成后,可以使用else来执行一个表示遍历完成的语句
articles = ["artile1","article2"]
for article in articles:
print(article)
else:
print("文章遍历完成")
for语句嵌套
for语句的循环部分可以嵌套其他语句,比如嵌套if,while语句
# for语句嵌套示例
# 嵌套一个if语句输出偶数
lists = [1, 2, 3, 4, 5, 6]
for i in lists:
if i % 2 == 0:
print(i)
# 嵌套循环
# for循环可以嵌套在另一个for循环里
# 首先循环外部for,然后循环嵌套for,嵌套for循环结束后,再次循环外部for,接着循环嵌套for
# 如此重复外部循环结束
# 举例 有两个列表,输出两个列表中相等的元素
lists_1 = [1,3,4,5,7,9]
lists_2 = [1,4,7,9]
for i in lists_1:
print("i=", i)
print("lists_2开始循环")
for j in lists_2:
if i == j:
print("i 与 j相等=", i)
else:
print("i=", i, " j=",j)
print("lists_2循环结束")
print("*"*30)
print("lists_1循环下一个")
for语句练习
# 使用for语句打印九九乘法表
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
...
1 * 9 = 9 2 * 9 ... 9 * 9 = 81
# 使用for语句打印如下图形
#
# #
# # #
# # # #
讨论区