鱼C论坛

 找回密码
 立即注册
查看: 3101|回复: 13

python第四讲的小问题

[复制链接]
发表于 2018-12-6 14:23:42 | 显示全部楼层 |阅读模式

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

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

x
import random
times = 3
secret = random.randint(1,10)
print('------------------猜年龄------------------')
guess = 0
print("不妨猜一下我今年几岁了:", end=" ")
while (guess != secret) and (times > 0):
    times = times - 1            
    temp = input()
    guess = int(temp)

    if guess == secret:
        print("厉害猜中了!")
        print("不过猜中也没有什么奖励")
    else:
        if guess > secret:
            print("哥,大了大了~~~")
        else:
            print("嘿,小了,小了~~~")
        if times > 0:
            print("再试一次吧:", end=" ")
        else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")

原本是想猜3次就结束游戏,但是run的时候却是无限循环的
经过测试是
    times = times - 1         第一句      次数=次数-1
    temp = input()                第二句    令temp=input 输入的数字
    guess = int(temp)                第三句    guess的数字就是temp  int之后的数字符(整数化)  

把第一句放到最后面就可以了。
1.想请问一下这个原因是什么。
2.以后写代码的时候应该怎么样把我这个语句顺序
3.黄色的数字是我自己对代码的理解 这么理解可以吗?

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

使用道具 举报

发表于 2018-12-6 14:42:48 | 显示全部楼层
为啥我这边可以 就3次
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 14:54:30 | 显示全部楼层
不知道你想表达什么…

程序没什么毛病,就是你的while里既然包含了times > 0的情况,下面的if语句就不要包含了,不重复么?

把while里的times > 0 去掉就好。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 23:12:49 | 显示全部楼层
第五行应该是guess=secret的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-7 00:50:44 | 显示全部楼层
kihka 发表于 2018-12-6 23:12
第五行应该是guess=secret的吧

secret是随机赋值呀。
guess是输入的值。

要先给guess赋值一个不在secret范围内的数。
不然下面会找不到guess的字符。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 13:02:55 | 显示全部楼层
xia3880417 发表于 2018-12-7 00:50
secret是随机赋值呀。
guess是输入的值。

原来这样,你倒数第五行应该是times<0吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-7 15:02:32 | 显示全部楼层
kihka 发表于 2018-12-7 13:02
原来这样,你倒数第五行应该是times

倒数第五行没错呀。
times 大于 0 还有机会 呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 16:35:21 | 显示全部楼层
xia3880417 发表于 2018-12-7 15:02
倒数第五行没错呀。
times 大于 0 还有机会 呀

可是你第7行也是大于0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-7 17:19:16 | 显示全部楼层
kihka 发表于 2018-12-7 16:35
可是你第7行也是大于0

对啊 不矛盾把。
我这个程序是可以执行的呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 17:37:52 | 显示全部楼层
我是这么理解的,刚刚开始应该对第一次就猜对进行赋值,然后在用while循环对猜大猜小赋值。你写的一开始就进入循环,而且直接就对guess赋值为0,你下面又有secret,各个地方都有些毛病,所以你的程序跑步起来,我也是新手哈哈,刚刚开始学习,有错的地方别介意。请以后多多指教!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 22:27:12 | 显示全部楼层
xia3880417 发表于 2018-12-7 17:19
对啊 不矛盾把。
我这个程序是可以执行的呀

好吧,不好意思,我也不太懂。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 23:00:23 | 显示全部楼层
xia3880417 发表于 2018-12-7 17:19
对啊 不矛盾把。
我这个程序是可以执行的呀


import random
times = 2
secret = random.randint(1,10)

print('------------------猜年龄------------------')

temp=input("不妨猜一下我今年几岁了:")
guess = int(temp)
   
while (guess!=secret) and (times > 0):
   
    times = times - 1           
    temp=input("不妨猜一下我今年几岁了:")
    guess = int(temp)
   
    if guess == secret:
        print("厉害猜中了!")
        print("不过猜中也没有什么奖励")
    else:
        if guess > secret:
            print("哥,大了大了~~~")
        else:
            print("嘿,小了,小了~~~")
    if times > 0:
        print("再试一次吧!",end=" ")
    else:
        print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")

我改了下你的那个,在我电脑可以执行,你看看可以帮助到你吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-7 23:08:22 | 显示全部楼层
kihka 发表于 2018-12-7 23:00
import random
times = 2
secret = random.randint(1,10)

不妨猜一下我今年几岁了:3
不妨猜一下我今年几岁了:2
嘿,小了,小了~~~
再试一次吧! 不妨猜一下我今年几岁了:1
嘿,小了,小了~~~
机会用光咯T_T
游戏结束,不玩啦^_^


第一次和第二次有点小bug。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 23:17:33 | 显示全部楼层
xia3880417 发表于 2018-12-7 23:08
不妨猜一下我今年几岁了:3
不妨猜一下我今年几岁了:2
嘿,小了,小了~~~

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 07:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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