鱼C论坛

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

[已解决]Python

[复制链接]
发表于 2020-4-10 08:09:51 | 显示全部楼层 |阅读模式

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

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

x
问题在哪??


while True:
    temp = input('请输入一个整数')
    while not temp.isdigit:
        temp = input("输入错误,请重新输入。")
    secret = int(temp)
    while secret > 100 or secret < 0:
        
    temp = input("请输入0到100之前的数字。")
    secret = int(temp)
   
    if secret>80 and secret <= 100:
        print("A")
    elif secret<=80 and secret>60:
        print("B")
    elif secret>40 and secret<=60:
        print("C")
    else:
        print("D")
最佳答案
2020-4-10 08:17:50
  1. while True:
  2.     temp = input('请输入一个整数')
  3.     while not temp.isdigit():   
  4.         temp = input("输入错误,请重新输入。")
  5.     secret = int(temp)
  6.     while secret > 100 or secret < 0:
  7.         temp = input("请输入0到100之前的数字。")
  8.         secret = int(temp)  
  9.     if secret > 80 and secret <= 100:
  10.         print("A")
  11.     elif secret <= 80 and secret > 60:
  12.         print("B")
  13.     elif secret > 40 and secret <= 60:
  14.         print("C")
  15.     else:
  16.         print("D")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 08:13:09 From FishC Mobile | 显示全部楼层
为啥标题就六个字母???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 08:13:43 | 显示全部楼层
1. 缩进错了

2. isdigit() 漏了括号

帮你改好了:

  1. while True:
  2.     temp = input('请输入一个整数')
  3.     while not temp.isdigit():    # 更改
  4.         temp = input("输入错误,请重新输入。")
  5.     secret = int(temp)
  6.     while secret > 100 or secret < 0:
  7.         temp = input("请输入0到100之前的数字。")    # 更改
  8.         secret = int(temp)    # 更改

  9.     if secret > 80 and secret <= 100:
  10.         print("A")
  11.     elif secret <= 80 and secret > 60:
  12.         print("B")
  13.     elif secret > 40 and secret <= 60:
  14.         print("C")
  15.     else:
  16.         print("D")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 08:17:50 | 显示全部楼层    本楼为最佳答案   
  1. while True:
  2.     temp = input('请输入一个整数')
  3.     while not temp.isdigit():   
  4.         temp = input("输入错误,请重新输入。")
  5.     secret = int(temp)
  6.     while secret > 100 or secret < 0:
  7.         temp = input("请输入0到100之前的数字。")
  8.         secret = int(temp)  
  9.     if secret > 80 and secret <= 100:
  10.         print("A")
  11.     elif secret <= 80 and secret > 60:
  12.         print("B")
  13.     elif secret > 40 and secret <= 60:
  14.         print("C")
  15.     else:
  16.         print("D")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 09:06:28 | 显示全部楼层
帮你修改了,问题写在注释里了。你的程序和三楼的程序,在遇到输入范围不对的情况下,重新输入后,没有进行输入格式判断,可能会出错哟。
  1. while True:
  2.     temp = input('请输入一个整数')
  3.     while True:                   #将判断输入格式问题和输入范围问题放在同一个循环下,这样输入范围不对的情况下再次输入还会判断格式是否正确
  4.         if not temp.isdigit():    # 这里isdigit是一个函数,调用时,后面需要加上括号
  5.             temp = input("输入错误,请重新输入。")#若因格式不对而进入这个if语句块,直接进行下一次输入
  6.             continue    #若因格式不对而进入这个if语句块,就不再进行int转换也不再判断数字范围,直接进行下一次循环
  7.         secret = int(temp)   #能执行这一句说明if语句通过了,输入格式是正确的,yongint将之转为数字
  8.         if secret > 100 or secret < 0:  #if语句判断输入范围,范围不正确,重新输入,然后进行下一次循环,重新判断输入格式
  9.             temp = input("请输入0到100之前的数字。")    # 之前这里缩进不对,而且这里重新输入之后没有判断格式是否是数字,就直接用int转化,运行时可能会弹出异常
  10.         else:                    #若输入数字的范围正确就跳出这个循环
  11.             break
  12.     if secret > 80 and secret <= 100:
  13.         print("A")
  14.     elif secret <= 80 and secret > 60:
  15.         print("B")
  16.     elif secret > 40 and secret <= 60:
  17.         print("C")
  18.     else:
  19.         print("D")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-12 21:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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