鱼C小迷弟丶 发表于 2023-4-7 17:09:39

为什么最后一道加上numb = input("请输入你的分数:")不会循环了???

numb = input("请输入你的分数:")

while numb != 'e':

    numb = int(numb)

    if numb < 60:
      print('D')

    if 60 <= numb < 80:
      print('C')

    if 80 <= numb < 90:
      print('B')

    if 90 <= numb < 100:
      print('A')

    if numb == 100 :
      print('S')

    numb = input("请输入你的分数")



为什么最后一道加上numb = input("请输入你的分数:")不会循环了???

isdkz 发表于 2023-4-7 17:11:28

你的代码中最后一行numb = input("请输入你的分数")缺少了一个冒号。应该是numb = input("请输入你的分数:")。当你在提示中加上冒号,用户输入会更清晰。

另外,这段代码本身是可以循环的。只要用户不输入'e',这个循环就会一直执行下去。当用户输入'e'时,循环会停止。我稍微修改了一下你的代码,以便更好地展示循环效果:

numb = input("请输入你的分数:")

while numb != 'e':
    numb = int(numb)

    if numb < 60:
      print('D')
    elif 60 <= numb < 80:
      print('C')
    elif 80 <= numb < 90:
      print('B')
    elif 90 <= numb < 100:
      print('A')
    elif numb == 100:
      print('S')

    numb = input("请输入你的分数:")

现在,当你输入一个数字并按回车键后,代码会输出相应的等级。然后再次提示你输入一个分数。当你输入'e'时,循环会停止。

鱼C小迷弟丶 发表于 2023-4-8 00:47:57

isdkz 发表于 2023-4-7 17:11
你的代码中最后一行numb = input("请输入你的分数")缺少了一个冒号。应该是numb = input("请输入你的分数: ...

能不能讲一下为啥输入e就不循环了呢

isdkz 发表于 2023-4-8 00:50:40

鱼C小迷弟丶 发表于 2023-4-8 00:47
能不能讲一下为啥输入e就不循环了呢

在这个例子中,while循环的条件是numb != 'e'。这意味着只要numb的值不等于'e',循环就会一直执行下去。

当用户输入一个数字(如 85)时,numb的值将是一个包含数字字符的字符串(如'85')。接下来,程序会将该字符串转换为整数(在这个例子中是 85),然后根据整数值输出相应的等级。在循环的末尾,程序会再次提示用户输入分数,然后将其赋给numb。

当用户输入'e'时,numb的值将会是字符串'e'。在这种情况下,while循环的条件numb != 'e'不再成立,因为numb的值现在等于'e'。由于循环条件不再满足,程序将跳出while循环,并继续执行循环之后的代码(如果有的话)。

所以,当用户输入'e'时,循环会停止,因为while循环的条件不再成立。

陶远航 发表于 2023-4-8 08:02:56

在这个代码中,numb 变量在 while 循环中用来表示用户输入的分数,并且在循环体中被修改为下一次的输入值。当用户在输入分数时输入了字母 "e",循环终止。

当用户输入 "e" 时,循环会停止,因为在下一次循环开始前,循环条件 numb != 'e' 已经不满足了,所以循环终止。
如果你想让程序继续运行,你可以把整个循环放到一个函数中,并在循环结束后再次调用该函数。这样,当循环结束后,程序就会重新执行该函数,并等待用户的输入。

以下是修改后的代码示例:
def score():
    numb = input("请输入你的分数:")
    while numb != 'e':
      numb = int(numb)
      if numb < 60:
            print('D')
      elif 60 <= numb < 80:
            print('C')
      elif 80 <= numb < 90:
            print('B')
      elif 90 <= numb < 100:
            print('A')
      elif numb == 100:
            print('S')
      numb = input("请输入你的分数:")
    score()

score()
在这个示例中,将 while 循环放在一个名为 score 的函数中,并在函数末尾递归调用 score() 函数。这样,当用户输入 "e" 时,循环终止,然后程序再次调用 score() 函数,等待下一次的用户输入。这样,程序就能够一直运行下去,直到用户主动结束程序。
页: [1]
查看完整版本: 为什么最后一道加上numb = input("请输入你的分数:")不会循环了???