鱼C论坛

 找回密码
 立即注册
查看: 968|回复: 4

[已解决]求助

[复制链接]
发表于 2023-7-7 20:13:38 | 显示全部楼层 |阅读模式

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

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

x
有大佬知道这个程序为啥一直跳不出第一个循环不。
最佳答案
2023-7-7 20:26:27
本帖最后由 sfqxx 于 2023-7-7 20:28 编辑

这个程序一直跳不出第一个循环的原因是输入的temp始终无法转换为整数类型,导致循环条件一直成立。可以尝试以下方法解决该问题:

1. 确保输入的是数字类型。你可以在输入前对用户输入进行验证,确保输入的是合法的整数。

  1. while True:
  2.     temp = input("请输入一个整数:")
  3.     if temp.isdigit():
  4.         break
  5.     else:
  6.         print("抱歉,输入不合法,请重新输入。")
复制代码

2. 另外,还需要注意循环的顺序。在第一个循环之后,应该将输入的temp转换为整数类型,而不是在循环的开始处使用它。

请根据上述建议修改程序,应该能够解决跳不出第一个循环的问题。

3.在第9行加上int:
  1. counts = 3
  2. import random
  3. anwser = random.randint(1,10)
  4. print("小甲鱼想的是什么数字:",end=" ")
  5. temp = input()
  6. # 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
  7. while type(temp) != type(1):
  8.     print("抱歉,输入不合法,", end='')
  9.     temp = int(input("请输入一个整数:"))
  10. while counts > 0:
  11.    temp = input()
  12.    guess = int(temp)
  13.    if guess == anwser:
  14.       print("你是小甲鱼肚子里的蛔虫吗")
  15.       print("答对了也没奖励")
  16.       break
  17.    else:
  18.       if guess < anwser:
  19.           print("你猜小了")
  20.       else:
  21.           print("你猜大了")
  22.       if counts > 0:
  23.          print("再试一次:",end="")
  24.       else:
  25.          print("机会用完了")
  26.       counts = counts -1
  27. print("游戏结束")
  28.    
复制代码


求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-7 20:15:44 | 显示全部楼层
code?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-7 20:18:17 | 显示全部楼层
  1. counts = 3
  2. import random
  3. anwser = random.randint(1,10)
  4. print("小甲鱼想的是什么数字:",end=" ")
  5. temp = input()
  6. # 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
  7. while type(temp) != type(1):
  8.     print("抱歉,输入不合法,", end='')
  9.     temp = input("请输入一个整数:")
  10. while counts > 0:
  11.    temp = input()
  12.    guess = int(temp)
  13.    if guess == anwser:
  14.       print("你是小甲鱼肚子里的蛔虫吗")
  15.       print("答对了也没奖励")
  16.       break
  17.    else:
  18.       if guess < anwser:
  19.           print("你猜小了")
  20.       else:
  21.           print("你猜大了")
  22.       if counts > 0:
  23.          print("再试一次:",end="")
  24.       else:
  25.          print("机会用完了")
  26.       counts = counts -1
  27. print("游戏结束")
  28.    
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-7 20:23:10 | 显示全部楼层

09行改为
  1.     temp = int(input("xxx: "))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-7 20:26:27 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sfqxx 于 2023-7-7 20:28 编辑

这个程序一直跳不出第一个循环的原因是输入的temp始终无法转换为整数类型,导致循环条件一直成立。可以尝试以下方法解决该问题:

1. 确保输入的是数字类型。你可以在输入前对用户输入进行验证,确保输入的是合法的整数。

  1. while True:
  2.     temp = input("请输入一个整数:")
  3.     if temp.isdigit():
  4.         break
  5.     else:
  6.         print("抱歉,输入不合法,请重新输入。")
复制代码

2. 另外,还需要注意循环的顺序。在第一个循环之后,应该将输入的temp转换为整数类型,而不是在循环的开始处使用它。

请根据上述建议修改程序,应该能够解决跳不出第一个循环的问题。

3.在第9行加上int:
  1. counts = 3
  2. import random
  3. anwser = random.randint(1,10)
  4. print("小甲鱼想的是什么数字:",end=" ")
  5. temp = input()
  6. # 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
  7. while type(temp) != type(1):
  8.     print("抱歉,输入不合法,", end='')
  9.     temp = int(input("请输入一个整数:"))
  10. while counts > 0:
  11.    temp = input()
  12.    guess = int(temp)
  13.    if guess == anwser:
  14.       print("你是小甲鱼肚子里的蛔虫吗")
  15.       print("答对了也没奖励")
  16.       break
  17.    else:
  18.       if guess < anwser:
  19.           print("你猜小了")
  20.       else:
  21.           print("你猜大了")
  22.       if counts > 0:
  23.          print("再试一次:",end="")
  24.       else:
  25.          print("机会用完了")
  26.       counts = counts -1
  27. print("游戏结束")
  28.    
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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