import random
import time
numOfGuesses = 0
guess = ''
playername = ''
numbertoguess = 0
MAX_GUESS = 10
#======================
playername = input ('What is your name:')
numbertoguess = random.randint (1, 100)
input("hello, " + playername + ", Guess the number I am thinking of
(hint its between 1 and 100")
#======================
while numOfGuesses < MAX_GUESS:
guess = int(input("What is your guess:"))
numOfGuesses += 1
time.wait(1)
if guess < numbertoguess:
print ('Higher')
if guess > numbertoguess:
print ('Lower')
elif numOfGuesses > MAX_GUESS:
sys.exit()
else:
sys.exit()
#======================
if guess == numbertoguess:
print ("You are right," + playername + ",you guessed it in "+str
(numOfGuesses) + "tries")
elif guess != numbertoguess and numOfGuesses == 10:
print ("awe so close," + playername + ".")
print ("the number was" + str(numbertoguess) +".")`
当你完成一个猜测而不是告诉你去“更高”或“更低”的代码运行在他们和不打印。我对python太陌生了,如果有人能帮我那就太好了。你知道吗
好的,这里有几个问题。你知道吗
1)Python在类C语言中将换行符视为分号,所以
将引发语法错误。要编码换行符,请使用转义序列
"\n"
不过,这看起来像是复制+粘贴问题。你知道吗
2)Python使用缩进来确定块的位置。因此,循环体中的所有语句必须以与其余语句相同的空格/制表符数开始。所以while循环应该看起来像(缩进)
我认为这是你在问题标题中指出的问题的根源。因为while循环只执行
guess = int(input("What is your guess:"))
行,因为它是唯一正确缩进的行。你知道吗注意:不能混用制表符和空格,python会有一个fit和no soup for you
缩进样式通常为4个空格或1个制表符。单空格缩进会让你头痛一段时间后。你知道吗
3)如果需要延迟,正确的函数是
time.sleep()
4)while体中有两个if语句,因此如果猜测通过了
if guess < numbertoguess:
,它将继续到下一个if guess > numbertoguess:
并失败。然后它将跳转到else
主体,这是一个系统退出/中断语句。任何一个都会导致游戏过早结束。你知道吗将if链更改为:
5)你有
sys.exit()
,但你忘了import sys
。而且exit()
不需要导入,您可以在没有sys
模块的情况下使用它。你知道吗6)
exit()
退出程序。如果执行其中一个elif / else
语句,while循环之后将不会运行任何内容。您要查找的语句可能是break
语句,它在循环后的下一行继续执行程序。你知道吗7)与数字1相同),这里将语句分成两行
固定到
注意事项
在样式方面,使用4个空格或1个制表符缩进。它使事情更容易阅读。还可以使用换行来分隔代码中的逻辑块。您可以使用
#===========
来表示重要的块或巨大的逻辑块。你知道吗这并不是说你不能没有换行符,也不能用
#===========
作为逻辑块,但是读你代码的人会讨厌你。你知道吗你的字符串到处都缺少一些格式
您已经在下面硬编码了最大猜测:
elif guess != numbertoguess and numOfGuesses == 10:
事实上,您并不需要检查,因为您已经检查了上面的正确答案。你知道吗这是因为用户目前可能处于两种逻辑状态:正确猜测或错误猜测
MAX_GUESS
次。如果你有3+个逻辑状态(猜对了,猜错了,复活节彩蛋猜42),你就得再做一次检查。你知道吗考虑使用for循环而不是while循环。
while
循环适用于不需要知道已执行了多少个循环,或者循环条件是特定的布尔表达式的情况。(例如while something.hasNext():
)for
循环适用于特定次数的迭代,或者需要按顺序访问某些内容时。(每个循环也有一个)。你知道吗那么你就不需要检查你的猜测次数了,因为你保证最多循环一次maxxu的猜测次数
一个建议,如果可以的话。获得一个带有语法高亮显示和检查的IDE(集成开发环境)。我将Eclipse与python插件一起使用,但是eclipse对于初学者来说有点多。我们的CS教授建议使用Wing,但我从未使用过
你知道吗-
成品(字符串格式除外)。我会让你这么做的):
相关问题 更多 >
编程相关推荐