python-for循环与while循环

while 循环

格式:

while 条件 为 True:

代码块
while True:
    rayn_age = 18
    age = input('请输入你的年龄:')
    age = int(age)
    if age == rayn_age:
        print('恭喜你答对了')
    elif age > rayn_age:
        print('猜大了')
    else:
        print('猜小了')
    break
请输入你的年龄:11
猜小了

问题来了,如果while的条件没有控制好,那么while循环就会成为死循环

while + break

while True:
    rayn_age = 18
    age = input('请输入你的年龄:')
    age = int(age)
    if age ==rayn_age:
        print('恭喜你猜对了')
        break  ## 直接终止本层循环
    elif age > rayn_age:
        print('你猜大了')
    else:
        print('猜小了')
请输入你的年龄:11
猜小了
请输入你的年龄:18
恭喜你猜对了

while +continue

打印1-100的整数,且不打印50

count = 0
while count <101:
    if count == 50:
        count +=1
        continue  ## 本层级下面的代码行都不执行,就是中断本层级的循环,外层循环正常循环。
    print(count,end=' ') # end=' ' 表示取消打印自动换行
    count +=1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

while 循环的嵌套

count = 0
dic = {0:'铅笔一只',1:'钢笔一只',2:'橡皮擦一个'} #奖励品可以用字典来展示,这样用户只要输入key值就可以自动索引到奖品。
while count <3:
    rayn_age = 18
    age = input('请输入你的年龄:')
    age = int(age)
    if age == rayn_age:
        print('恭喜你,猜对了,有奖励哦')
        # 这个循环是选择奖励品的判断循环
        while True:
            print(f'请选择奖励:{dic}') 
            chiose = input('请选择奖励:')
            chiose = int(chiose)
            if chiose == 1:
                print('权限不够,请重新选择!')
            else:
                print(f'你选择了{dic[chiose]},请取走')
                break
        break
    elif age > rayn_age:
        print('猜大了')
    else:
        print('猜小了')
    count +=1
    j = 3 - count
    print(f'你还有{j}次机会')
请输入你的年龄:11
猜小了
你还有2次机会
请输入你的年龄:20
猜大了
你还有1次机会
请输入你的年龄:18
恭喜你,猜对了,有奖励哦
请选择奖励:{0: '铅笔一只', 1: '钢笔一只', 2: '橡皮擦一个'}
请选择奖励:1
权限不够,请重新选择!
请选择奖励:{0: '铅笔一只', 1: '钢笔一只', 2: '橡皮擦一个'}
请选择奖励:2
你选择了橡皮擦一个,请取走

for循环

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

比如把1-100的数值全部取出来,那用while循环还要我们自己添加控制条件,而for循环不需要。

for i in range(1,101):
    print(i,end=' ')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

for + break

rayn_list = ['read','run','rap','sing']
for i in rayn_list:
    if i == 'rap':
        break  ##直接终止循环
    print(i)
read
run

for + continue

rayn_list = ['read','run','rap','sing']
for i in rayn_list:
    if i == 'rap':
        continue  ##除了‘rap’层级不执行外,其他层级循环继续执行。
    print(i)
read
run
sing
posted @ 2019-05-22 20:35  raynduan  阅读(306)  评论(0编辑  收藏  举报