for循环

语法

为什么有了while循环,还需要有for循环呢?不都是循环吗?我给大家出个问题,我给出一个列表,我们把这个列表里面的所有名字取出来。

name_list = ['nick', 'jason', 'tank', 'sean']

n = 0
while n < 4:
    # while n < len(name_list):
    print(name_list[n])
    n += 1 
nick
jason
tank
sean

字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。

name_list = ['nick', 'jason', 'tank', 'sean']
for item in name_list:
    print(item)

  nick jason tank sean

for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。

# for循环按照索引取值
name_list = ['nick', 'jason', 'tank', 'sean']
# for i in range(5):  # 5是数的
for i in range(len(name_list)):
    print(i, name_list[i])

  0 nick 1 jason 2 tank 3 sean

二、for +break

# for+break
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    if name == 'jason':
        break
    print(name)

  nick

三、for+ continue

# for+continue
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    if name == 'jason':
        continue
    print(name)

  nick tank sean

四、for循环嵌套

# for循环嵌套
for i in range(3):
    print(f'-----:{i}')
    for j in range(2):
        print(f'*****:{j}')

  

五、for+else

# for+else
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    print(name)
else:
    print('for循环没有被break中断掉')

  

六、for循环加loading.......

只能在jupyter完成此代码

import time

print('Loading', end='')
for i in range(6):
    print(".", end='')
    time.sleep(0.2)

  总结:

while
在某些情况下,while还是经常被用到,比如上面的登录大多都用while,但是它的缺点也很明显
1、会进入死循环,不可控,尽量少用
2、世间万物都可以作为循环的对象
for
for在某些情况(比如列表和字典)会比while简单得多,并且不会进入死循环,但也不是万能的
1、不会进入死循环,可控,尽量使用
2、只对容器类数据类型循环(可迭代对象)

原文地址:https://www.cnblogs.com/whnbky/p/11282838.html