while循环

while 循环

while循环又叫条件循环

# while循环语法结构

while 条件:
    code1
    code2
    
    ……
    
    

只有当条件判断为Ture时,才会执行code1,code2……代码块

# 下面来写一个猜年龄小游戏

age = 27

while True:
    guess_age = input('>>>>请输入你猜的年龄:')
    guess_age = int(guess_age)
    if guess_age == age:
        print('猜对啦!')
    elif guess_age > age:
        print('猜大了')
    else:
        print('猜小了')
>>>>请输入你猜的年龄:23
猜小了
>>>>请输入你猜的年龄:55
猜大了
>>>>请输入你猜的年龄:30
猜大了
>>>>请输入你猜的年龄:25
猜小了

以上就是一个很简单的while循环,但你是否看到,这个循环会一直循环下去而无法停止,那要怎样让它停止下来呢? 这就需要我们接下来讲到的while……break语句

while……break语法

break表示终止本层循环,其他层的循环不受干扰

while 条件:
    code1
    code2
    
    break
    
    code3
    
    ...
    
age = 27

while True:
    guess_age = input('>>>>请输入你猜的年龄:')
    guess_age = int(guess_age)
    if guess_age == age:
        print('猜对啦!')
        break                # 这样猜对啦就会跳出循环,不在继续循环了
    elif guess_age > age:
        print('猜大了')
    else:
        print('猜小了')
>>>>请输入你猜的年龄:55
猜大了
>>>>请输入你猜的年龄:27
猜对啦!

while循环嵌套

顾名思义,while循环嵌套就是while循环里还有while循环

上面的小游戏好不好玩,可以玩无数次,直至猜对为止,但这样没啥意义,玩游戏就要有刺激性、期待性,我们可以再增加条件

  1. 只有三次机会可以玩;
  2. 如果猜对了,就会有奖品,且猜的次数越少,奖品越多
print('-------------猜年龄拿奖品啦!-------------')

guess_age = 27
life = 3
count = 0
award_dict = {0:'Book',1:'Fish',2:'Food',3:'Cup',4:'pencil'}

while count < life:
    age = input('>>>>请输入你猜的年龄:')
    age = int(age)
    
    if age == guess_age:
        time = life - count
        print(f'恭喜你猜对啦!!!\n你可以从下面奖品中选择{time}个奖品\n{award_dict}')
        
        # 接下来进行奖品选择,又使用了一次while循环

        while time:
            num = input('>>>>请输入你想要的奖品编号(一次只能选择一个):')
            num = int(num)
            print(f'恭喜你获得了奖品【{award_dict[num]}】')
            time -= 1
        break     # 跳出本层循环
    
    elif age < guess_age:
        print('猜小了')
        
    else:
        print('猜大了')
    count += 1

-------------猜年龄拿奖品啦!-------------
>>>>请输入你猜的年龄:30
猜大了
>>>>请输入你猜的年龄:27
恭喜你猜对啦!!!
你可以从下面奖品中选择2个奖品
{0: 'Book', 1: 'Fish', 2: 'Food', 3: 'Cup', 4: 'pencil'}
>>>>请输入你想要的奖品编号(一次只能选择一个):2
恭喜你获得了奖品【Food】
>>>>请输入你想要的奖品编号(一次只能选择一个):3
恭喜你获得了奖品【Cup】

while+continue

continue表示跳过本次循环,接下来继续执行本层循环

下面我们写一个从0+1+2+3+……+100的计算公式

count = 0
count_sub = 0

while count < 100:
    count += 1
    count_sub +=count

print(count_sub)
5050

如果我们只要100以内偶数相加的值,需要怎么操作呢?

count = 0
count_sub = 0

while count < 100:
    count += 1
    if (count % 2) != 0:
        continue             # 跳出本次循环,继续下一个循环
    count_sub +=count

print(count_sub)
2550

while……else

定义:如果while循环没有被break掉,则执行else内部代码

num = 0
while num < 8:
    print(num)
    num += 1
else:
    print('else会在while没有被break时才会执行else中的代码')
0
1
2
3
4
5
6
7
else会在while没有被break时才会执行else中的代码
num = 0
while num < 8:
    if num == 6:
        break
    print(num)
    num += 1
else:
    print('else会在while没有被break时才会执行else中的代码')
print('while循环在num = 6时break掉了,所以不会执行else语句')
0
1
2
3
4
5
while循环在num = 6时break掉了,所以不会执行else语句
posted @ 2019-05-06 16:11  蔚蓝的爱  阅读(615)  评论(0编辑  收藏  举报