[英]Python task I'm having trouble running
我在 Udemy 开设了一门新课程,名为“Python 训练营,从零到英雄”。 嗯,基础课后的任务之一就是写一个猜谜游戏,这些是规则:
挑战:
编写一个程序,从 1 到 100 中随机选择一个整数,让玩家猜测这个数字。 规则是:
如果玩家的猜测小于 1 或大于 100,请说“越界” 在玩家的第一回合,如果他们的猜测在数字的 10 以内,则返回“WARM!” 距离数字超过 10,返回“COLD!” 在所有后续回合中,如果猜测比前一个猜测更接近数字,则返回“更温暖!” 比先前猜测的数字更远,返回“COLDER!” 当玩家的猜测等于数字时,告诉他们他们猜对了以及猜对了多少!
我试图在没有指导的情况下写这个,只是从我学到的基本工具。 迄今为止。 这是我的代码(仍在处理它)
guess=randint(0,100)
## Guessing game !
# In this game, we will pick a random integer from the integers in the segment [0,100].
# In each step one should guess the integer that the system chose.
# Once you gussed correctly, you will win the game.
GuessList=[]
Guess=input('Your Guess is: ')
GuessList.append(Guess)
if int(Guess)<0 or int(Guess)>100:
print('OUT OF BOUNDS')
else:
if int(Guess)==int(guess):
print('Congragulations, you have earned your chicken for friday \n Game is over now.')
else:
if 0<int(guess)-int(Guess)<10:
print('Warm')
elif 0<int(Guess)-int(guess)<10:
print('Warm')
else:
print('Cold')
NewGuess=input('Your new guess is: ')
if int(NewGuess)==int(guess):
print('Congragulations, you have earned your chicken for friday \n The game is over now')
while int(NewGuess)!=int(guess):
if int(NewGuess)<0 or int(NewGuess)>100:
print('OUT OF BOUNDS')
else:
GuessList.append(NewGuess)
if 0<int(NewGuess)-int(Guess)<int(Guess)-int(guess):
print('WARMER')
elif 0<int(NewGuess)-int(Guess)<int(guess)-int(Guess):
print('WARMER')
elif 0<int(Guess)-int(NewGuess)<int(guess)-int(Guess):
print('WARMER')
elif 0<int(Guess)-int(NewGuess)<int(Guess)-int(guess):
print('WARMER')
else:
print('COLDER')
NewGuess=input('Your new guess is: ')
我确定这很糟糕。 我的问题是:
首先,我知道我没有完成任务中写的内容。 我的代码没有告诉猜测他是否更接近正确数字的人,而是与第一个猜测有关。 不要告诉我怎么写正确,等我明白了更关键的问题,我会弄清楚的:
正如它所写的那样,无论我试图猜测什么,它都不会结束游戏(好像 0-100 之间的所有数字)都是不正确的。
同样,当我运行它并尝试运行简单的代码guess
,它什么也不做(我在木星笔记本中工作)。
但是如果我不运行这段代码,只运行guess=randint(0,100)
然后运行guess
它会显示我的数字。
提前致谢。
让我们一一解决问题:
NewGuess
与Guess
( int(NewGuess)-int(Guess)
) 进行比较, Guess
是第一个猜测guess
应该是区间 [1, 100] 中的数字。 也许您没有从random
模块中导入randint
?我强烈建议按照信函的课程来学习如何正确编码。 更好的是,给自己找一本由在该主题上拥有数十年经验的专业人士撰写的书。 Udemy 课程还可以,但它们只能让您到此为止。 同样在编码任何东西之前,先对你要编码的东西以及它应该如何运行进行草图。 此外,在 SO 上发布之前,请尝试自己调试,检查每一行并对其进行分析; 确保您确切地知道它的作用。 所以应该是你最后的手段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.