python-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循环。

info = {'name': 'nick', 'age': 19}

for item in info:
    # 取出info的keys
    print(item)
name
age
name_list = ['nick', 'jason', 'tank', 'sean']
for item in name_list:
    print(item)
nick
jason
tank
sean

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

print(list(range(1, 10)))

[1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in range(1, 10):  # range顾头不顾尾
    print(i)
1
2
3
4
5
6
7
8
9
# 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循环调出本层循环。

str1 = 'itheima'
for i in str1:
 if i == 'e':
 print('遇到e不打印')
 break
 print(i)

执行结果:

i
t
h
遇到e不打印

三、for + continue#
for循环调出本次循环,进入下一次循环

str1 = 'itheima'
for i in str1:
 if i == 'e':
 print('遇到e不打印')
 continue
 print(i) 123456

执行结果:

i
t
h
遇到e不打印
i
m
a

四、for循环嵌套#
外层循环循环一次,内层循环循环所有的。

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

五、for+else#
语法

for 临时变量 in 序列:
 重复执⾏的代码
 ...
else:
 循环正常结束之后要执⾏的代码

所谓else指的是循环正常结束之后要执⾏的代码,即如果是break终⽌循环的情况,else下⽅缩进
的代码将不执⾏。

示例:

str1 = 'itheima'
for i in str1:
 print(i)
else:
 print('循环正常结束之后执⾏的代码')

退出循环的⽅式

  1. break终⽌循环
str1 = 'itheima'
for i in str1:
 if i == 'e':
 print('遇到e不打印')
 break
 print(i)
else:
 print('循环正常结束之后执⾏的代码')

执行结果:

i
t
h
遇到e不打印

没有执⾏else缩进的代码。

2. continue控制循环

str1 = 'itheima'
for i in str1:
 if i == 'e':
 print('遇到e不打印')
 continue
 print(i)
else:
 print('循环正常结束之后执⾏的代码')

执行结果:

i
t
h
遇到e不打印
i
m
a

因为continue是退出当前⼀次循环,继续下⼀次循环,所以该循环在continue控制下是可以正常
结束的,当循环结束后,则执⾏了else缩进的代码.

六、for循环实现loading#

import time

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

Loading......

posted @ 2020-06-04 20:04  江辞~  阅读(155)  评论(0)    收藏  举报