cyqlpy 发表于 2020-8-12 10:22:58

分级问题(初学者求助)

大家看看我这个,为啥输入0~100以外的数字时程序直接结束了?

score= int(input('请输入你的分数:'))
while 0<=score<60:
    print('D')
    score= int(input('请输入你的分数:'))
while 60<=score<80:
    print('C')
    score= int(input('请输入你的分数:'))
while 80<=score<90:
    print('B')
    score= int(input('请输入你的分数:'))
while 90<=score<=100:
    print('A')
    score= int(input('请输入你的分数:'))
while score<0 or score>100:
    score= int(input('请在正确范围内输入你的分数:'))

baige 发表于 2020-8-12 10:26:02

0~100以外的数字时,重新输入合法,向下已经没有语句可以执行了,程序结束

yhhpf 发表于 2020-8-12 10:26:09

话说这个用if判断不就好了么...
回到你代码上,正常情况输入<0,>100的数字你最后一条会判断出来呀,是不是你代码缩进没正确?

sunrise085 发表于 2020-8-12 10:26:24

你这程序逻辑有问题啊,为什么每一个都是while循环?
若输入一个0~100以外的数字,会进入最后一个循环,再次输入一个数字就跳出最后一个循环,并结束程序了

baige 发表于 2020-8-12 10:27:06

你不能这样写,这样输入,回不到前面

cyqlpy 发表于 2020-8-12 10:30:24

我想要一个可以反复判断的程序应该怎么办?

baige 发表于 2020-8-12 10:31:19


score= int(input('请输入你的分数:'))
while True:
    if 0 <= score <= 100:
      if 0<=score<60:
             print('D')
      elif 60<=score<80:
             print('C')
      elif 80<=score<90:
             print('B')
      elif 90<=score<=100:
             print('A')
      score= int(input('请输入你的分数:'))
    else :
         score= int(input('请在正确范围内输入你的分数:'))

cyqlpy 发表于 2020-8-12 10:32:41

baige 发表于 2020-8-12 10:31


好的,谢谢啦
页: [1]
查看完整版本: 分级问题(初学者求助)