pqzzqp00 发表于 2020-12-17 22:24:41

小白求助

为什么划红线的部分一定要在最后一行

不能懒 发表于 2020-12-17 22:25:42

循环结束然后下一次开始的输入啊

qq1151985918 发表于 2020-12-17 22:35:49

本帖最后由 qq1151985918 于 2020-12-17 22:36 编辑

代码肯定是放在前面的先执行啊,你想在最开始执行也可以放在最前边,只不过在你循环之前已经有过一次input,所以第一次循环就没必要在最前边再加这一句,你想放在while下边也不是不行啊,你把第一句改成score=1,就可以把你划线的放在while紧下边了,只不过你要是想输入e退出的话就可能报错了,还需要代码优化。

Daniel_Zhang 发表于 2020-12-17 23:54:38

可以这么改进:

while True: # 当程序不满足最底下的 break 的条件时,将一直进行 while 循环
    score = input('请输入分数:')
    if score.isdigit(): # 当 score 是 数字时,满足 if 条件,将 score 转换成 int
      # 如果输入的不是数字,int() 转型会报错,此处改进后,只有当 score 是数字时才会继续运行
      # 另外也检查了 score 在满足输入是数字的情况下,不超过范围的问题
      score = int(score)
      if score < 60:
            print('D')
      elif 60 <= score < 80:
            print('C')
      elif 80 <= score <90:
            print('B')
      elif 90 <= score < 100:
            print('A')
      elif score == 100:
            print('S')
      else:
            print('超过了数值范围')
    else:
      break # 当输入的不为数字时,跳出循环,结束程序运行
页: [1]
查看完整版本: 小白求助