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的作用很多,这里先介绍到这。我们写完代码后,应该检查有没有漏洞。可能只是一个小小的回车没敲都可能出不了答案。所以,一定要仔细。要在不断的练习中精益求精。伙伴们快去自己试试吧!!!

Guess you like

Origin blog.csdn.net/Python_XTyyds/article/details/121410962