CONGCONGCONGCLA 发表于 2019-8-17 10:33:28

while语句求助

这个代码,我想如果输入数字不是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 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

zltzlt 发表于 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('谢谢使用!')

CONGCONGCONGCLA 发表于 2019-8-17 13:02:22

_谪仙 发表于 2019-8-17 10:48


谢谢啦,把 if 取消缩进也可以。我原来那个好像比较繁琐……

CONGCONGCONGCLA 发表于 2019-8-17 13:03:00

谢谢!

5584197 发表于 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()

5584197 发表于 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('谢谢使用!')

CONGCONGCONGCLA 发表于 2019-8-17 16:19:38

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

def getInput ...

确实这样可以了,输字母也不会报错了。谢谢啦!我还没学到def getInput()和try,提前见识了,谢谢!
页: [1]
查看完整版本: while语句求助