python中while True的用处
用两个案例来讲解
1.案例一(打印成绩并求平均数)
(1).无while True版本
为了减轻老师们的负担,我们今天就用Python来打印学生成绩。这里我们以十个学生举例,首先先写代码:
sum = 0
for i in range(10):
score = int(input('输入第{}个学生成绩:'.format(i + 1)))
sum = sum + score
average = sum / 10
print('平均成绩:{}'.format(round(average, 2)))
查看运行结果
这样真的可以帮到老师们吗?在这里可能就有细心的小伙伴发出疑问。为什么成绩有负数呢?就算是交白卷也不可能是负数。所以,这就说明我们的代码有点小问题。
(2).有while True版本
sum = 0
for i in range(20):
while True: ###防止输入负数
score = int(input('输入第{}个学生成绩:'.format(i + 1)))
if 0 <= score <= 100:
break
else:
print('贴纸输入错误,要在[0, 100]之内')
sum = sum + score
average = sum / 20
print('平均成绩:'.format(round(average, 2)))
这里我们选着在文中加while Ture,来对输入的数据进行判断,这样就能避免出现负数的情况。再次运行,
这样输入的成绩能在规定范围,不会超出和出现负数。这样孩纸在也不用担心成绩出错了。
2.案列二(猜字游戏)
import random
target = random.randint(0, 100)
x = int(input('贴纸,你认为这个数是:'))
while True:
if x < target:
x = int(input('小了帖子再猜:'))
elif x > target:
x = int(input('大了贴纸再猜:'))
else:
break
print('答对了,感谢帖子试玩')
上面的while True的作用大家肯定都明白,然后让我们来看看运行结果:
当你猜对后游戏也就结束了,那有没有可以供玩的人选择是否接着玩方法呢?接下来我们进行一点改进
import random
while True:
target = random.randint(0, 100)
x = int(input('贴纸,你认为这个数是:'))
while True:
if x < target:
x = int(input('小了帖子再猜:'))
elif x > target:
x = int(input('大了贴纸再猜:'))
else:
break
choice = input('帖子你还想猜猜看吗?(哟西/哒咩)')
if choice == '哒咩':
break
print('欢迎好帖子下次来玩')
我们这里有引用了一个while True,供玩家选择是否接着玩。运行结果,
这样只要输入对应的字,便可以结束和接着游戏
3.总结
while True的作用很多,这里先介绍到这。我们写完代码后,应该检查有没有漏洞。可能只是一个小小的回车没敲都可能出不了答案。所以,一定要仔细。要在不断的练习中精益求精。伙伴们快去自己试试吧!!!