zj1522989 发表于 2022-10-12 13:41:31

纯小白求助 为什么分数100时 不输出S

'''评分程序'''


score = int(input("请输入您的分数:"))
while score != 100:
   
   

    if 0<= score < 60:
         print("D")


    if 60<= score <80:
         print("C")


    if 80<= score <90:
         print("B")


    if 90<= score <100:
         print("A")


    if score == 100:
         print("S")


    score = int(input("请输入您的分数:"))
   

逃兵 发表于 2022-10-12 13:53:51

当score == 100时不会进入while循环,程序直接结束

jackz007 发表于 2022-10-12 14:01:34

本帖最后由 jackz007 于 2022-10-12 14:28 编辑

while score != 100 :    # 问题在这里,只有 score 的值不是 100 才能进入 while 循环
      像这种分段判断问题应该使用 if ... elif ... elif ... else 结构,一个 if 系统搞定所有问题,逻辑缜密严谨。
while True:
    score = int(input("请输入您的分数:"))
    if    0 <= 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                  : break
      如果键入的值在 以外,那就不循环了,这就是单个 if 体系的优点所在。

hejunfei 发表于 2022-10-12 14:20:40

因为score==100时,while语句不成立,所有循环不会执行

crusher101 发表于 2022-10-12 15:48:09

因为设置了输入100分的时候跳出循环阿

2971739074 发表于 2022-10-12 16:57:24

把score != 100改成1,再把score = int(input("请输入您的分数:"))放到while循环里面也行

lymww 发表于 2022-10-12 17:10:41

因为你循环的结束条件是while score != 100:   
就是说分数不等于100时才会继续循环,当分数等于100时,你的循环就结束了,所以就不会输出你循环中的内容
页: [1]
查看完整版本: 纯小白求助 为什么分数100时 不输出S