xia3880417 发表于 2018-12-6 14:23:42

python第四讲的小问题

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的数字就是tempint之后的数字符(整数化)

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

zzh555945 发表于 2018-12-6 14:42:48

为啥我这边可以 就3次

heidern0612 发表于 2018-12-6 14:54:30

不知道你想表达什么…

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

把while里的times > 0 去掉就好。

kihka 发表于 2018-12-6 23:12:49

第五行应该是guess=secret的吧

xia3880417 发表于 2018-12-7 00:50:44

kihka 发表于 2018-12-6 23:12
第五行应该是guess=secret的吧

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

要先给guess赋值一个不在secret范围内的数。
不然下面会找不到guess的字符。

kihka 发表于 2018-12-7 13:02:55

xia3880417 发表于 2018-12-7 00:50
secret是随机赋值呀。
guess是输入的值。



原来这样,你倒数第五行应该是times<0吧

xia3880417 发表于 2018-12-7 15:02:32

kihka 发表于 2018-12-7 13:02
原来这样,你倒数第五行应该是times

倒数第五行没错呀。
times 大于 0 还有机会 呀

kihka 发表于 2018-12-7 16:35:21

xia3880417 发表于 2018-12-7 15:02
倒数第五行没错呀。
times 大于 0 还有机会 呀

可是你第7行也是大于0

xia3880417 发表于 2018-12-7 17:19:16

kihka 发表于 2018-12-7 16:35
可是你第7行也是大于0

对啊 不矛盾把。
我这个程序是可以执行的呀

wangww222 发表于 2018-12-7 17:37:52

我是这么理解的,刚刚开始应该对第一次就猜对进行赋值,然后在用while循环对猜大猜小赋值。你写的一开始就进入循环,而且直接就对guess赋值为0,你下面又有secret,各个地方都有些毛病,所以你的程序跑步起来,我也是新手哈哈,刚刚开始学习,有错的地方别介意。请以后多多指教!

kihka 发表于 2018-12-7 22:27:12

xia3880417 发表于 2018-12-7 17:19
对啊 不矛盾把。
我这个程序是可以执行的呀

好吧,不好意思,我也不太懂。

kihka 发表于 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("游戏结束,不玩啦^_^")

我改了下你的那个,在我电脑可以执行,你看看可以帮助到你吗?

xia3880417 发表于 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。。

kihka 发表于 2018-12-7 23:17:33

xia3880417 发表于 2018-12-7 23:08
不妨猜一下我今年几岁了:3
不妨猜一下我今年几岁了:2
嘿,小了,小了~~~


我也不太懂{:10_266:}
页: [1]
查看完整版本: python第四讲的小问题