鱼C论坛

 找回密码
 立即注册
查看: 1256|回复: 4

[已解决]求教

[复制链接]
发表于 2020-9-9 23:08:14 | 显示全部楼层 |阅读模式
5鱼币
输入100以上的数字,为什么没有执行 "重新输入0~100",而是执行了 "输入一个分数"
a = 100
while a:
    a = int(input("输入一个分数:"))
    if 100 >= a and a >= 90:
        print("A")
        break
    elif 90 > a and a >= 80:
        print("B")
        break
    elif 80 > a and a >= 60:
        print("C")
        break
    elif 60>a:
        print("D")
        break
    elif a < 0 and a > 100:
        a = int(input("重新输入0~100:"))
        print(a)
最佳答案
2020-9-9 23:08:15
本帖最后由 疾风怪盗 于 2020-9-9 23:22 编辑
elif a < 0 and a > 100:
这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:"
其实可以完全不写这个条件
a = 100
while a:
    a = int(input("输入一个分数:"))
    if 90 <= a <= 100:
        print("A")
        break
    elif 80 <= a < 90:
        print("B")
        break
    elif 60 <= a < 80:
        print("C")
        break
    elif 0 <= a < 60:
        print("D")
        break
    else:
        a = int(input("重新输入0~100:"))
        print(a)

最佳答案

查看完整内容

这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:" 其实可以完全不写这个条件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-9 23:08:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 疾风怪盗 于 2020-9-9 23:22 编辑
elif a < 0 and a > 100:
这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:"
其实可以完全不写这个条件
a = 100
while a:
    a = int(input("输入一个分数:"))
    if 90 <= a <= 100:
        print("A")
        break
    elif 80 <= a < 90:
        print("B")
        break
    elif 60 <= a < 80:
        print("C")
        break
    elif 0 <= a < 60:
        print("D")
        break
    else:
        a = int(input("重新输入0~100:"))
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-10 11:58:11 | 显示全部楼层
elif a < 0 and a > 100:
这一句的意思是a要小于0并且要大于100,你不觉得有问题么??,改成a小于0或者a大于100就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-10 14:44:55 | 显示全部楼层
    elif a < 0 and a > 100:           #这个地方不对,两者是并且的关系,没有数字可以又小于0并且又大于100,所以这个条件是不成立的自然不能执行后面的重新输入和打印。
        a = int(input("重新输入0~100:"))
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-10 16:14:46 | 显示全部楼层
#!/usr/bin/env python3
#coding=utf-8

# 输入100以上的数字,为什么没有执行 "重新输入0~100",而是执行了 "输入一个分数"
a = 100
while a:
    a = int(input("输入一个分数:"))
    if 100 >= a and a >= 90:
        print("A")
        break
    elif 90 > a and a >= 80:
        print("B")
        break
    elif 80 > a and a >= 60:
        print("C")
        break
    elif 60>a:
        print("D")
        break
    # and 短路求值了 101<0 不成立所以跳过了代码段
    # or 则不会短路求值
    elif a < 0 or a > 100:
        a = int(input("重新输入0~100:"))
        print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 16:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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