流程控制之for循环

流程控制之for循环

一、语法

有了骚气的while循环,为什么还满足不了那个需求呢,为什么还需要for ,看看下面的问题,给出一个列表,要取出列表里面的所有数据取出来,该怎么做呢,下面看看while如何实现:

eg(while):

nums_list = [1, 2, 3, 4]

n = 0
while n < 4:
    # while n < len(name_list):
    print(nums_list[n])
    n += 1

结果:
1
2
3
4

在字典也有去多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环,骚操作一下,让他彻底的满足。

eg:

info = {'name': 'randy', 'age': 18}

for item in info:
    # 取出info的keys
    print(item)

结果:
randy
18

再看看列表:
eg:

nums_list = [1, 2, 3, 4]
for item in nums_list:
    print(item)

结果:
1
2
3
4

看出for循环,骚里骚气的操作了吗,for循环的次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值,在看看下面一波骚操作。

for i in range(1, 10):  # range顾头不顾尾
    print(i)

1
2
3
4
5
6
7
8
9

二、for+break

for循环和while循环一样,都可以使用break跳出

出本层循环。

# for+break
nums_list = [1, 2, 3, 4]
for nums in nums_list:
    if nums == 2:
        break
    print(nums)

结果:

1

三、 for+continue

for循环调出本次循环,进入下一次循环

# for+continue
nums_list = [1, 2, 3, 4]
for nums in nums_list:
    if nums == 2:
        continue
    print(nums)

四、for循环嵌套

外层循环循环一次,内层循环循环所有的。

eg:

# 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循环没有break的时候触发else内部代码块和while+else一样。

eg:

# for+else
nums_list = [1, 2, 3, 4]
for nums in nums_list:
    print(nums)
else:
    print('for循环没有被break中断掉')

结果:
1
2
3
4
for循环没有被break中断掉

六、for循环实现loading

eg(最好在cmd窗口中运行或采用交互的方法):

import time

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

结果:Loading......

七、总结

  1. for: 与while一样都是解决不停的重复去实现一件事情,但是他们之间也有区别,for可以无需知道遍历列表的长度,而while需要直接长度便于终止循环;一般for使用比while使用次数多;
  2. for...break: 与while一样都是跳出当前所在循环体,并且break只能出现在循环体中;
  3. for...continue: 与while一样都是终止当前循环,继续执行下一次循环,并且continue只能出现在循环体中;
  4. for...else: 与while一样, else代码块会在for循环被break终止循环都会执行else代码块,一旦循环被break,else代码将不会被执行;
  5. for循环嵌套: 当有一件重复要做的事情,里面还有重复的事情要做,则需要使用循环嵌套,解决需求;

吾性自足,不假外求。

posted @ 2020-01-20 11:16  RandySun  阅读(179)  评论(0编辑  收藏  举报