目录
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循环
上面的小游戏好不好玩,可以玩无数次,直至猜对为止,但这样没啥意义,玩游戏就要有刺激性、期待性,我们可以再增加条件
- 只有三次机会可以玩;
- 如果猜对了,就会有奖品,且猜的次数越少,奖品越多
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'恭喜你猜对啦!!!
你可以从下面奖品中选择{time}个奖品
{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语句