鱼C论坛

 找回密码
 立即注册
查看: 1675|回复: 9

[已解决]基础新问题求助

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

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

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

x
import random
daan = random.randint(1,10)
temp = input('请输入数字:')
guess = int(temp)
time = 3
while guess!=daan and time>0:
    guess = int(temp)
    time = time-1
    if guess == daan:
        print ('恭喜你答对啦!')
        print ('答对的奖励就是没有奖励哦!')
    else:
        if guess > daan:
            print ('给个提示,这个数字大了哦!')            
        else:
            print ('给个提示,这个数字小了哦!')               
    temp = input('注意机会只有三次!再来一次吧:')
print('游戏结束啦,玩的真开心!')


这串代码跑了跑,发现如果是第一次就猜对的话,是不显示
if guess == daan:
        print ('恭喜你答对啦!')
        print ('答对的奖励就是没有奖励哦!')

这一串的,还有就是给time赋值是3,time-1应该只能跑三次,却跑了四次是为什么?大哥大哥帮帮我,小弟实在是渣渣。
最佳答案
2020-6-4 15:40:45
为啥没名字能起 发表于 2020-6-4 15:35
import random
daan = random.randint(1,2)
time = 3

小小的加工了下~
import random
daan = random.randint(1,2)
time = 3
guess = 0
print('请输入数字:')
while guess!=daan and time>0:
    temp = input()
    guess = int(temp)
    time = time-1
    if guess == daan:
        print ('恭喜你答对啦!')
        print ('答对的奖励就是没有奖励哦!')
    else:
        if guess > daan:
            print ('给个提示,这个数字大了哦!')
        else:
            print ('给个提示,这个数字小了哦!')
        if time == 0:
            print('对不起~你的次数已经用完!')
        else:
            print('注意机会还有',time,'次!')
print('游戏结束啦,玩的真开心!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 15:24:05 | 显示全部楼层
因为你有一次是在循环外面输入的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 15:27:25 | 显示全部楼层

没学end。。。。。。。不会用啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 15:27:59 | 显示全部楼层
为啥没名字能起 发表于 2020-6-4 15:27
没学end。。。。。。。不会用啊


end 是print 的默认的参数  默认时候等于 换行符号   我这里让他等于空就是不换行~

end 去掉不影响代码运行~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 15:32:13 | 显示全部楼层
为啥没名字能起 发表于 2020-6-4 15:27
没学end。。。。。。。不会用啊

那就这样呗
import random
daan = random.randint(1,10)
guess = 0
time = 2
temp = input('请输入数字:')
while guess!=daan and time>0:
    guess = int(temp)
    if guess == daan:
        print ('恭喜你答对啦!')
        print ('答对的奖励就是没有奖励哦!')
        break
    else:
        time = time - 1
        if guess > daan:
            print ('给个提示,这个数字大了哦!')
        else:
            print ('给个提示,这个数字小了哦!')
    temp = input('注意机会只有三次!再来一次吧:')
print('游戏结束啦,玩的真开心!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 15:35:48 | 显示全部楼层
Twilight6 发表于 2020-6-4 15:27
end 是print 的默认的参数  默认时候等于 换行符号   我这里让他等于空就是不换行~

end 去掉不影响 ...

import random
daan = random.randint(1,2)
time = 3
guess = 0
print('请输入数字:')
while guess!=daan and time>0:
    temp = input()
    guess = int(temp)
    time = time-1
    if guess == daan:
        print ('恭喜你答对啦!')
        print ('答对的奖励就是没有奖励哦!')
    else:
        if guess > daan:
            print ('给个提示,这个数字大了哦!')
        else:
            print ('给个提示,这个数字小了哦!')
            print('注意机会只有三次!')
print('游戏结束啦,玩的真开心!')

我去掉了end,然后发现如果使用的是这串代码,第一次答对就会出现  print('注意机会只有三次!')  字符串显示的情况(正常应该是答对不显示),是不是这串简陋的代码有漏洞?如果触及知识盲区就不用继续帮我改了,我这边再学一学,如果不是请帮我详细解答一下,感谢d大的大佬(虽然每次都是你,总感觉你在蹲我这个小白)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 15:40:45 | 显示全部楼层    本楼为最佳答案   
为啥没名字能起 发表于 2020-6-4 15:35
import random
daan = random.randint(1,2)
time = 3

小小的加工了下~
import random
daan = random.randint(1,2)
time = 3
guess = 0
print('请输入数字:')
while guess!=daan and time>0:
    temp = input()
    guess = int(temp)
    time = time-1
    if guess == daan:
        print ('恭喜你答对啦!')
        print ('答对的奖励就是没有奖励哦!')
    else:
        if guess > daan:
            print ('给个提示,这个数字大了哦!')
        else:
            print ('给个提示,这个数字小了哦!')
        if time == 0:
            print('对不起~你的次数已经用完!')
        else:
            print('注意机会还有',time,'次!')
print('游戏结束啦,玩的真开心!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 15:43:53 | 显示全部楼层
Twilight6 发表于 2020-6-4 15:40
小小的加工了下~

卧槽!真玩出花来了,大佬d大无疑,但是我记得昨天有人说过if是只能调用一次的啊,这是什么原理?是不是 if如果有if(1),if(2),if(3)不同变量的话是可以重复使用if的?
else:
        if guess > daan:
            print ('给个提示,这个数字大了哦!')
        else:
            print ('给个提示,这个数字小了哦!')
        if time == 0:
            print('对不起~你的次数已经用完!')
        else:
            print('注意机会还有',time,'次!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 15:45:37 | 显示全部楼层
为啥没名字能起 发表于 2020-6-4 15:43
卧槽!真玩出花来了,大佬d大无疑,但是我记得昨天有人说过if是只能调用一次的啊,这是什么原理?是不是  ...

  你学到后面就会发现这很基础啦~ 没你想的那么高端哈哈

if 确实智能判断一次  但是if 外面有个 while 循环  这次判断完 下次继续判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 15:47:29 | 显示全部楼层
Twilight6 发表于 2020-6-4 15:45
你学到后面就会发现这很基础啦~ 没你想的那么高端哈哈

if 确实智能判断一次  但是if 外面 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 14:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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