python循环控制for1_1

123 阅读2分钟

使用while循环

while循环遍历列表

list1 = ['a', 1, True]
index1 = 0
while index1 < len(list1):
    print(list1[index1])
    index1 += 1

使用 for 循环:

遍历列表

for循环遍历列表

list1 = ['a', 1, True]
for n in list1:
    print(n)
   
# a
# 1
# True

遍历字典

遍历key

for循环遍历字典, 默认遍历 key

dict1 = {'name': '张三', 'age': 18}
for n in dict1:
    print(n)


# name
# age

结果和上面一样都是遍历key:

dict1 = {'name': '张三', 'age': 18}
for n in dict1.keys():
    print(n)

遍历value:

dict1 = {'name': '张三', 'age': 18}
for n in dict1.values():
    print(n)
    

# 张三
# 18

还可以:

dict1 = {'name': '张三', 'age': 18}
for n in dict1:
    print(dict1[n])

遍历键值对

键值对是放在元祖里面的

dict1 = {'name': '张三', 'age': 18}
for n in dict1.items():
    print(n)


# ('name', '张三')
# ('age', 18)

小总结

for可以不依赖于索引取指,是一种通用的循环取值方式

for的循环次数是由被循环对象包含值的个数决定的.而while的循环次数是由条件决定的

range迭代器

语法

range(起始索引, 结束索引, 步长)

后面讲, 这里了解下

range1 = range(0, 5)
print(range1)
print(type(range1))
print(list(range1))

# range(0, 5)
# <class 'range'>
# [0, 1, 2, 3, 4]

为什么不直接变成列表,因为会浪费内存

比如

range1 = range(0, 1000000000000)
# range(0, 1000000000000)

# 如果是列表, 这里会打印很长很长, 这样就在浪费内存

range 一般和for循环连用,循环一次取一次!用一次少一次!节约内存!

for n in range(0, 3):
    print(n)
    
# 0
# 1
# 2

# ============================
# 如果列表很长, 就浪费内存
for n in [0, 1, 2]:
    print(n)

# 0
# 1
# 2

# ============================

for n in range(3, 5):
    print(n)

# 3
# 4

# ============================

for n in range(1, 7, 2):
    print(n)

# 1
# 3
# 5