鱼C论坛

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

[已解决]第五讲里的改进游戏,我这样改为什么行不通呢

[复制链接]
发表于 2018-2-19 23:25:11 | 显示全部楼层 |阅读模式

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

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

x
import random
times = 5
secret = random.randint(1,100)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
temp = input("来猜猜我心里想的是什么数字:")
guess = int(temp)
if guess == secret:
    print('恭喜你,第一次就猜对了,真厉害啊!')
else:
    while (guess != secret) and (times > 0):
        temp = input()
        guess = int(temp)
        times = times - 1 # 用户每输入一次,可用机会就-1
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            if times > 0:
                print("再试一次吧:", end=" ")
            else:
                print("机会用光咯T_T")
print('谢谢你的参与,祝你好运常在')


这里输入一个数字后就没有了?
最佳答案
2018-2-20 04:41:41
首先,你的问题出在了while下面这句temp = input()上面,当用input函数,你是需要赋值的,如果在你写的temp = input()里加上一句话变成temp = input('这里需要回复一些内容~')这样,你在运行就会发现你的程序并不是没了,只是需要输入一个值,才能继续运行,如下图:
屏幕快照 2018-02-19 下午3.31.05.png
除此之外,如果你不想出出现这个情况,你需要把你 temp = input() 这一句移到 print("再试一次吧:", end=" ") 后面,就像这样:
屏幕快照 2018-02-19 下午3.37.27.png
现在你运行一下试一试,问题就解决了~你可以仔细想一想整个逻辑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-19 23:52:59 | 显示全部楼层
我运行了一下你的代码,你在输入第一数的时候,进行了if判断,当判断条件为false的时候进入了while循环,但是你的while循环一开始就又写了一个input(),所以你就要再次输入数字,这样在while中判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-20 04:41:41 | 显示全部楼层    本楼为最佳答案   
首先,你的问题出在了while下面这句temp = input()上面,当用input函数,你是需要赋值的,如果在你写的temp = input()里加上一句话变成temp = input('这里需要回复一些内容~')这样,你在运行就会发现你的程序并不是没了,只是需要输入一个值,才能继续运行,如下图:
屏幕快照 2018-02-19 下午3.31.05.png
除此之外,如果你不想出出现这个情况,你需要把你 temp = input() 这一句移到 print("再试一次吧:", end=" ") 后面,就像这样:
屏幕快照 2018-02-19 下午3.37.27.png
现在你运行一下试一试,问题就解决了~你可以仔细想一想整个逻辑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-20 11:43:57 | 显示全部楼层
请问一下,你的修改里出现了三个temp=input() ,这三个出现在各自的位置有什么意义呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-20 11:53:24 | 显示全部楼层
junkaiw 发表于 2018-2-20 04:41
首先,你的问题出在了while下面这句temp = input()上面,当用input函数,你是需要赋值的,如果在你写的temp ...

谢谢你,我修改后运行了一下,是可以的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-20 23:02:39 | 显示全部楼层
huzhihan123 发表于 2018-2-20 11:43
请问一下,你的修改里出现了三个temp=input() ,这三个出现在各自的位置有什么意义呢

这里第一个temp=input是要求用户输入一个值,第二个’# 用户每输入一次,可用机会就-1‘之前那句其实是可以删掉的,我之前给忘了。。,然后你在最后“print("再试一次吧:", end=" ")”这句之后的那句temp=input(),改成temp = int(input(),确保temp转换成int形式就行,这句的意义就像你在print里要求的那样,如果用户猜错,让他再次输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 14:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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