鱼C论坛

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

[已解决]第四讲 为什么要先给guess赋值为0 其他为什么不是其他数字

[复制链接]
发表于 2020-4-23 16:54:17 | 显示全部楼层 |阅读模式

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

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

x
第四讲  为什么要先给guess赋值为0 其他为什么不是其他数字

import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0

# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
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("游戏结束,不玩啦^_^")
最佳答案
2020-4-23 17:04:31
如果你赋值其他的数值,有可能就直接是答案的那个数字,这样的话,程序就直接结束了,当然如果设的数字恰巧不是某一次的答案的话,程序还可以运行。但是一直存在所设的guess初始值和答案一样,程序直接结束得可能,对游戏就是个bug。
你可以把随机函数那个值得范围调小一点,比如设成random.randint(1,1),这样答案就只会是1,你再把guess设成1,试试程序结果就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-23 16:56:29 | 显示全部楼层
你看到后面,while循环里有一个条件,
是guess != 0吗?
你如果不给guess赋值,就会报错(guess未定义)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 16:58:18 | 显示全部楼层
因为答案是1~10的随机数,如果guess = 1~10里的数,就有可能用户还没猜程序就退出了(第10行
while (guess != secret) and (times > 0):
\5683$#%&#*%
%@$&*#*&$#^$@
guess也可以设置成不是1~10的任意一个数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 16:59:41 | 显示全部楼层
secret是1-9之间的随机数,要给guess赋一个不等于secret的值,所以是零最合适
也可以是其他不在1-9之间的数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 17:00:37 | 显示全部楼层
guess要不在1~10(secret)的区间里,要不然可能用户 还没猜程序就退出了(第10行:while (guess != secret) and (times > 0):,guess==secret的时候程序就会退出)\%(W|%#|%#|
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 17:04:31 | 显示全部楼层    本楼为最佳答案   
如果你赋值其他的数值,有可能就直接是答案的那个数字,这样的话,程序就直接结束了,当然如果设的数字恰巧不是某一次的答案的话,程序还可以运行。但是一直存在所设的guess初始值和答案一样,程序直接结束得可能,对游戏就是个bug。
你可以把随机函数那个值得范围调小一点,比如设成random.randint(1,1),这样答案就只会是1,你再把guess设成1,试试程序结果就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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