薛兔子 发表于 2020-5-15 09:51:55

代码中一些不太懂的地方,求解释,谢谢

import random
secret=random.randint(1,100)                                                      
time=3
guess=0       ##为什么要赋值guess=0      
print('-----welcome to game world-----')                                                
#:为什么要一下的标红步骤不需要了:#guess=int(temp)
#print('give a number:')
while (guess!=secret)and (time>0):
    temp=input('')
    guess=int(temp)
    time=time-1
    if(guess==secret)and (time>0):
      print('Wa!congratulations to you')
    else:
      if (guess>secret)and (time>0):
            print('sorry,too big')
      if (guess<secret) and (time>0):
            print('sorry,too small')
      if time==0:
            print('sorry,there no times')
print('game over')



以上问题烦请大家帮忙解答一下,谢谢

liuzhengyuan 发表于 2020-5-15 09:57:01

① 不然 guess 没有初始化, 程序就会报错
② 已经把输入放进循环里了

Twilight6 发表于 2020-5-15 09:57:56

import random
secret=random.randint(1,100)                                                      
time=3
guess=0       # guess 等于只是把值初始化,不然你while 那会报错
print('-----welcome to game world-----')   
print('give a number:')                                             
# 这边几步不需要是因为放到了循环里去了 ,循环里有input 用户输入
while (guess!=secret)and (time>0):   
    temp=input('')
    guess=int(temp)
    time=time-1
    if(guess==secret)and (time>0):
      print('Wa!congratulations to you')
    else:
      if (guess>secret)and (time>0):
            print('sorry,too big')
      if (guess<secret) and (time>0):
            print('sorry,too small')
      if time==0:
            print('sorry,there no times')
print('game over')

Twilight6 发表于 2020-5-15 09:59:43

还有 建议以后 如果你要
print('give a number:')
temp=input('')
改成:
temp = input('give a number:')
效果是一样的

heidern0612 发表于 2020-5-15 10:02:30

你得赋值了下面才能使用,不赋值的话,python不知道这个变量是个啥。

并且赋值还不能复制等于你randint里面的范围数字,不然就没下面的猜数字环节了。

标红步骤不需要,是因为下面有个类似的int代码了。

xiaosi4081 发表于 2020-5-15 10:07:24

你代码里面还有一个错误,不过程序不会报错:
1.你注释掉了那个print,所以那个print里面的内容要把它放到input里面
import random
secret=random.randint(1,100)                                                      
time=3
guess=0       ##初始化guess,不然会报错      
print('-----welcome to game world-----')                                                
#:为什么要一下的标红步骤不需要了:#guess=int(temp)
#答:因为前面guess已经赋值了,而且赋的值是int类型得值
#print('give a number:')
#答:input里面包括输出
while (guess!=secret)and (time>0):
    temp=input('give a number:')
    guess=int(temp)
    time=time-1
    if(guess==secret)and (time>0):
      print('Wa!congratulations to you')
    else:
      if (guess>secret)and (time>0):
            print('sorry,too big')
      if (guess<secret) and (time>0):
            print('sorry,too small')
      if time==0:
            print('sorry,there no times')
print('game over')

Hoiste 发表于 2020-5-15 11:27:09

如果不先声明一个变量名的初始值,那么在后面循环的条件判断时就会因为无法找到guess这个变量而报错。

第二个问题是前面这段代码没有改进的时候使用的input方法返回的结果是字符串,所以需要用int来改变数据类型,这里前面没有使用input方法,所以不用特地int来改变。

qiangqiang1 发表于 2020-5-15 12:41:32

import random
secret=random.randint(1,100)                                                      
time=3
guess=0      
print('-----welcome to game world-----')   
print('give a number:')                                             
while (guess!=secret)and (time>0):   
    temp=input('')
    guess=int(temp)
    time=time-1
    if(guess==secret)and (time >= 0):
      print('Wa!congratulations to you')
    else:
      if (guess>secret)and (time >= 0):
            print('sorry,too big')
      if (guess<secret) and (time >= 0):
            print('sorry,too small')
#这里不用再判断等于0的情况,否则会出现输入三次,判断两次的情况
print('sorry,there no times, game over')
页: [1]
查看完整版本: 代码中一些不太懂的地方,求解释,谢谢