鱼C论坛

 找回密码
 立即注册
查看: 1561|回复: 7

[已解决]新手求助

[复制链接]
发表于 2018-6-30 11:41:20 | 显示全部楼层 |阅读模式

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

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

x
import random
secret = random.randint(1,10)
temp = input('输入')
guess = int(temp)
while guess != secret:
      
        if guess == secret:
                print('对了')
        else:
                print("重新输入")
print ("游戏结束")
        
F5运行,输入错误就会不停重复  重新输入

重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入
重新输入Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\小游戏.py", line 10, in <module>
    print("重新输入")
KeyboardInterrupt
最佳答案
2018-6-30 12:34:19
莫畏炎 发表于 2018-6-30 11:50
因为while是循环语句嘛?

while是循环语句,输入错误时,while后面的条件变为True,所以会一直执行while循环里面的语句
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-6-30 11:50:41 | 显示全部楼层
因为while是循环语句嘛?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-30 12:17:09 From FishC Mobile | 显示全部楼层
temp = input('输入')
guess = int(temp)
把这个复制到循环里试试?记得别删前面的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-30 12:34:19 | 显示全部楼层    本楼为最佳答案   
莫畏炎 发表于 2018-6-30 11:50
因为while是循环语句嘛?

while是循环语句,输入错误时,while后面的条件变为True,所以会一直执行while循环里面的语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-30 12:53:50 | 显示全部楼层
是因为循环,里面需要你再次输入,否则guess和secret永远不等,一直循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-30 13:16:10 | 显示全部楼层
import random

secret = random.randint(1, 10)
print('正确答案:',secret)  #打印出正确答案,方便调试,实际运行时需注销此行
temp = input('输入:')  # 输入内容
guess = int(temp)
a = True   #定义bool变量 a = True
while a:    #循环运行游戏,直至a = False时跳出循环,结束游戏
    if guess == secret:
        print('对了\n')
        a = False  #答案正确时,重新对a赋值,使a = False,跳出循环结束游戏。  # break
    else:
        print('错了\n')
        temp = input('重新输入:')  #答案错误时,继续输入,重新对guess赋值
        guess = int(temp)
print("游戏结束")



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-30 19:34:42 | 显示全部楼层
while guess != secret:
      
        if guess == secret:
这两句相互矛盾啊,不想等又相等
用while语句要得到你的答案是,建议跳出循环,一般用break跳出循环,
建议代码改为这样:
import random
secret = random.randint(1,10)
temp = int(input('请输入一个整数:'))

while temp > 0:
   
    if temp == secret:
            print('答案正确')
            break
    else:
        print('答案有误')
        temp = int(input("请重新输入:"))
print ("游戏结束")
            
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-1 11:05:01 | 显示全部楼层
知道了,谢谢各位。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-23 05:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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