目录
while 循环
while循环又叫条件循环
# while循环语法结构while 条件: code1 code2 ……
只有当条件判断为Ture时,才会执行code1,code2……代码块
# 下面来写一个猜年龄小游戏age = 27while 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 = 27while 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循环
上面的小游戏好不好玩,可以玩无数次,直至猜对为止,但这样没啥意义,玩游戏就要有刺激性、期待性,我们可以再增加条件
- 只有三次机会可以玩;
- 如果猜对了,就会有奖品,且猜的次数越少,奖品越多
print('-------------猜年龄拿奖品啦!-------------')guess_age = 27life = 3count = 0award_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 = 0count_sub = 0while count < 100: count += 1 count_sub +=countprint(count_sub)
5050
如果我们只要100以内偶数相加的值,需要怎么操作呢?
count = 0count_sub = 0while count < 100: count += 1 if (count % 2) != 0: continue # 跳出本次循环,继续下一个循环 count_sub +=countprint(count_sub)
2550
while……else
定义:如果while循环没有被break掉,则执行else内部代码
num = 0while num < 8: print(num) num += 1else: print('else会在while没有被break时才会执行else中的代码')
01234567else会在while没有被break时才会执行else中的代码
num = 0while num < 8: if num == 6: break print(num) num += 1else: print('else会在while没有被break时才会执行else中的代码')print('while循环在num = 6时break掉了,所以不会执行else语句')
012345while循环在num = 6时break掉了,所以不会执行else语句