python 第六讲课后题
x = int(input("请输入你的分数:"))while x>1:
if 0< x < 60 :
print('D')
print("请输入你的分数")
elif 60 <= x <80:
print('C')
print("请输入你的分数")
elif 80 <= x <90:
print('B')
print("请输入你的分数")
elif 90 <= x < 100:
print('A')
print("请输入你的分数")
elif x == 100:
print('S')
print("请输入你的分数")
elif x == ('e'):
break
家人们,我这个为啥填了一个数字之后,就无线刷下去了啊{:5_105:} 您的代码中存在一个逻辑错误。在while循环中,您使用了 while x>1 ,这会导致循环无限进行,因为x的值在循环内部并没有被更新。另外,您还需要添加一个条件来处理用户输入'e'时的情况。
以下是修改后的代码:
while True:
x = input("请输入你的分数:")
if x == 'e':
break
x = int(x)
if 0 <= x < 60:
print('D')
elif 60 <= x < 80:
print('C')
elif 80 <= x < 90:
print('B')
elif 90 <= x < 100:
print('A')
elif x == 100:
print('S')
else:
print("请输入有效的分数")
这样修改后,用户输入'e'时会退出循环,而输入数字时会根据分数进行评级打印。 你的代码中存在一些问题,我来帮你看看。
首先,你的循环条件是 while x>1:,这意味着只要用户输入的分数大于 1,就会无限循环。其次,你的 input 函数接收到的是字符串,需要将其转换为整数后再进行比较。最后,你在每个判断条件的末尾又让用户重新输入分数,这会导致循环无法正常结束。
以下是修改后的代码:
while True:
x = input("请输入你的分数:")
if x == 'e':
break
x = int(x)
if 0 <= x < 60 :
print('D')
elif 60 <= x < 80:
print('C')
elif 80 <= x < 90:
print('B')
elif 90 <= x < 100:
print('A')
elif x == 100:
print('S')
else:
print("输入错误,请重新输入")
print("程序结束")
在这个修改后的代码中,我使用了一个无限循环 while True,然后在适当的位置使用 break 来结束循环。同时我将用户输入的分数转换为整数后再进行判断,并删除了多余的提示输入的语句。这样,当用户输入 'e' 时,程序会结束循环并输出"程序结束"。 Mike_python小 发表于 2023-11-12 19:56
你的代码中存在一些问题,我来帮你看看。
首先,你的循环条件是 while x>1:,这意味着只要用户输入的分数 ...
哥,可是在之前做第一期的小游戏的那个,输入心里想的数字的时候
我的代码是这样的,我感觉写的和现在一样呀,也没有终止的,也不会出现这样的无限循环,那是为什么呢?
import random
counts = 5
answer = random.randint(1,1000)
while counts > 1:
temp = input("猜猜我现在想的数字是什么?")
guess = int (temp)
if guess == answer:
print("你真牛逼!\n我没看错你!666!")
break
else :
if guess < answer:
print("不对嗷老弟,小了,再给你一次机会!")
if guess > answer:
print("不对嗷老弟,大了,再给你一次机会")
counts = counts - 1
if counts - 1 ==0:
print("最后一次机会")
temp = input("猜猜我现在想的数字是什么?")
guess = int(temp)
if guess == answer:
print("你真牛逼!\n我没看错你!666!")
break
else:
print("游戏结束!看来你真的不行!")
你的代码在一个 while 循环中,这个循环会一直执行,直到满足某个条件才会停止。你的停止条件是 x>1,所以只要 x 的值大于 1,循环就会无限地继续下去。
在你的代码中,x 的值是在循环开始之前由用户输入的,然后在循环中并没有改变。这就是为什么你填入一个数字后,代码就会无限循环的原因。
要解决这个问题,你需要在每次循环的最后再次请求用户输入。这样,x 的值在每次循环时都会得到更新。以下是修改后的代码:
x = int(input("请输入你的分数:"))
while x > 1:
if 0 < x < 60 :
print('D')
elif 60 <= x < 80:
print('C')
elif 80 <= x < 90:
print('B')
elif 90 <= x < 100:
print('A')
elif x == 100:
print('S')
x = input("请输入你的分数或输入'e'退出:")
if x.lower() == 'e':
break
else:
x = int(x)
以上代码在每次循环结束时,都会提示用户输入新的分数或输入 'e' 退出循环。这样就不会出现无限循环的情况了。 我很会Python 发表于 2023-11-12 20:00
哥,可是在之前做第一期的小游戏的那个,输入心里想的数字的时候
我的代码是这样的,我感觉写的和现在一 ...
counts = counts - 1 每次都会-1,等到减到1的时候,就会自动退出
页:
[1]