左游仙 发表于 2020-9-22 15:23:20

关于条件分支的问题

新版Python学习的课后作业,第006讲:改进我们的小游戏(上),动动手第1题:
我的代码如下:
while True:
    score = input("请输入分数:")
    if score =="e":
      break
    else:
      result = int(score)
      if result < 60:
            print("D")
      if 60 <= result < 80:
            print("C")
      if 80 <= result < 90:
            print("B")
      if 90 <= result <100:
            print("A")
      else:
            print("S")
执行的时候,输入一个分数,总会把S打印出来:比如输入59,会打印D S,输入89会打印B S,没弄明白为什么已经执行了前面的if条件,为什么还要执行后面的else,新手求解答

sunrise085 发表于 2020-9-22 15:32:17

因为你用的是多个if,最后一个if判断之后分数不在90到100之间就会执行else,然后输出S
应该吧第二个以后的if都改为elif,这样程序只会进入一个分支
while True:
    score = input("请输入分数:")
    if score =="e":
      break
    else:
      result = int(score)
      if result < 60:
            print("D")
      elif 60 <= result < 80:
            print("C")
      elif 80 <= result < 90:
            print("B")
      elif 90 <= result <100:
            print("A")
      else:
            print("S")
页: [1]
查看完整版本: 关于条件分支的问题