鱼C论坛

 找回密码
 立即注册
查看: 1593|回复: 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 编辑
  1. elif a < 0 and a > 100:
复制代码

这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:"
其实可以完全不写这个条件

  1. a = 100
  2. while a:
  3.     a = int(input("输入一个分数:"))
  4.     if 90 <= a <= 100:
  5.         print("A")
  6.         break
  7.     elif 80 <= a < 90:
  8.         print("B")
  9.         break
  10.     elif 60 <= a < 80:
  11.         print("C")
  12.         break
  13.     elif 0 <= a < 60:
  14.         print("D")
  15.         break
  16.     else:
  17.         a = int(input("重新输入0~100:"))
  18.         print(a)
复制代码

最佳答案

查看完整内容

这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:" 其实可以完全不写这个条件
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-9 23:08:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 疾风怪盗 于 2020-9-9 23:22 编辑
  1. elif a < 0 and a > 100:
复制代码

这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:"
其实可以完全不写这个条件

  1. a = 100
  2. while a:
  3.     a = int(input("输入一个分数:"))
  4.     if 90 <= a <= 100:
  5.         print("A")
  6.         break
  7.     elif 80 <= a < 90:
  8.         print("B")
  9.         break
  10.     elif 60 <= a < 80:
  11.         print("C")
  12.         break
  13.     elif 0 <= a < 60:
  14.         print("D")
  15.         break
  16.     else:
  17.         a = int(input("重新输入0~100:"))
  18.         print(a)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

  3. # 输入100以上的数字,为什么没有执行 "重新输入0~100",而是执行了 "输入一个分数"
  4. a = 100
  5. while a:
  6.     a = int(input("输入一个分数:"))
  7.     if 100 >= a and a >= 90:
  8.         print("A")
  9.         break
  10.     elif 90 > a and a >= 80:
  11.         print("B")
  12.         break
  13.     elif 80 > a and a >= 60:
  14.         print("C")
  15.         break
  16.     elif 60>a:
  17.         print("D")
  18.         break
  19.     # and 短路求值了 101<0 不成立所以跳过了代码段
  20.     # or 则不会短路求值
  21.     elif a < 0 or a > 100:
  22.         a = int(input("重新输入0~100:"))
  23.         print(a)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-26 23:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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