鱼C论坛

 找回密码
 立即注册
查看: 2358|回复: 7

[已解决]while语句求助

[复制链接]
发表于 2019-8-17 10:33:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个代码,我想如果输入数字不是1-100,就提示应该输入1-100的数,然后再循环运行,但是这个代码,必须先输入一个1-100区间之外的数,在输入一个1-100之内的数,它才会进行ABCD分类。想请教一下大家,如何让它如果是1-100,直接分类,不是1-100,提示应该输入1-100再分类。

temp = input('请输入一个分数: ')
score = int(temp)
while (score > 100) or (score <= 0):
    temp = input('请输入1到100的整数:')
    score = int(temp)
    if score>= 90:
        print('A')
    elif 80 <= score < 90:
        print('B')
    elif 60 <= score < 80:
        print('C')
    else:
        print('D')
    print('谢谢使用!')

谢谢大家!!!
最佳答案
2019-8-17 11:06:55
temp = input('请输入一个分数: ')
score = int(temp)
while (score > 100) or (score <= 0):
    temp = input('请输入1到100的整数:')
    score = int(temp)
if score >= 90:
    print('A')
elif 80 <= score < 90:
    print('B')
elif 60 <= score < 80:
    print('C')
else:
    print('D')
print('谢谢使用!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-17 10:48:00 | 显示全部楼层
while True:
    temp = input('请输入1到100的整数:')
    score = int(temp)
    if score > 0 and score < 101:
        pass
    else:
        continue
    if score >= 90:
        print('A')
    elif 80 <= score < 90:
        print('B')
    elif 60 <= score < 80:
        print('C')
    else:
        print('D')
    print('谢谢使用!')
    break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 11:06:55 | 显示全部楼层    本楼为最佳答案   
temp = input('请输入一个分数: ')
score = int(temp)
while (score > 100) or (score <= 0):
    temp = input('请输入1到100的整数:')
    score = int(temp)
if score >= 90:
    print('A')
elif 80 <= score < 90:
    print('B')
elif 60 <= score < 80:
    print('C')
else:
    print('D')
print('谢谢使用!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:02:22 | 显示全部楼层

谢谢啦,把 if 取消缩进也可以。我原来那个好像比较繁琐……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:03:00 | 显示全部楼层
谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-17 13:25:29 | 显示全部楼层
应该把IF语句移出while循环,还可以多加一个try-except判断,用于过滤用户输入字母或小数时出现的错误,这样用户输入任何值都能正常运行了

def getInput():
    try:
        temp = input('请输入一个分数:')
        score = int(temp)
    except:
        return getInput()

    while (score > 100) or (score <= 0):
        temp = input('请输入1到100的整数:')
        score = int(temp)
    if score>= 90:
        print('A')
    elif 80 <= score < 90:
        print('B')
    elif 60 <= score < 80:
        print('C')
    else:
        print('D')
    print('谢谢使用!')

getInput()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 13:32:34 | 显示全部楼层
不行 上面的程序先输入一个大于100的数,再输入字母,还是会报错,while需要放到try:里面

def getInput():
    try:
        temp = input('请输入一个分数:')
        score = int(temp)
        while (score > 100) or (score <= 0):
            temp = input('请输入1到100的整数:')
            score = int(temp)
    except:
        return getInput()

    if score>= 90:
        print('A')
    elif 80 <= score < 90:
        print('B')
    elif 60 <= score < 80:
        print('C')
    else:
        print('D')
    print('谢谢使用!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 16:19:38 | 显示全部楼层
5584197 发表于 2019-8-17 13:32
不行 上面的程序先输入一个大于100的数,再输入字母,还是会报错,while需要放到try:里面

def getInput ...

确实这样可以了,输字母也不会报错了。谢谢啦!我还没学到def getInput()和try,提前见识了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 02:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表