鱼C论坛

 找回密码
 立即注册
查看: 1744|回复: 5

[已解决]python 第六讲课后题

[复制链接]
发表于 2023-11-12 19:55:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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
家人们,我这个为啥填了一个数字之后,就无线刷下去了啊
最佳答案
2023-11-12 19:56:06
你的代码中存在一些问题,我来帮你看看。

首先,你的循环条件是 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' 时,程序会结束循环并输出"程序结束"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 19:55:32 | 显示全部楼层
您的代码中存在一个逻辑错误。在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'时会退出循环,而输入数字时会根据分数进行评级打印。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 19:56:06 | 显示全部楼层    本楼为最佳答案   
你的代码中存在一些问题,我来帮你看看。

首先,你的循环条件是 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' 时,程序会结束循环并输出"程序结束"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-11-12 20:00:19 | 显示全部楼层
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("游戏结束!看来你真的不行!")

      

            

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-11-12 20:03:11 | 显示全部楼层
你的代码在一个 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' 退出循环。这样就不会出现无限循环的情况了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-11-12 20:03:15 | 显示全部楼层
我很会Python 发表于 2023-11-12 20:00
哥,可是在之前做第一期的小游戏的那个,输入心里想的数字的时候
我的代码是这样的,我感觉写的和现在一 ...

counts = counts - 1 每次都会-1,等到减到1的时候,就会自动退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 06:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表