我正在学习Python,在这段代码中遇到了一些问题。我甚至拉下了作者的代码,它也有同样的问题。:(
在导入“随机”模块和“游戏”模块(包括"ask_number()“函数和”玩家“的类定义)之后,我们得到:
again = None
while again != "n":
players = []
num = games.ask_number(question = "How many players? (2-5): ", low = 2, high = 5)
for i in range(num):
name = input("Player name: ")
score = random.randrange(100) + 1
player = games.Player(name, score)
players.append(player)"ask_number()“函数如下所示:
def ask_number(question, low, high):
"""Ask for a number within a range."""
response = None
while response not in range(low, high):
response = int(input(question))
return response然而,当程序运行时,问题“多少玩家?(2-5):”会无限地出现,而不管输入的是什么数字作为响应。显然,似乎建立了某种错误的循环,但我不知道这对我的生活是什么(这就是为什么我是一个“绝对的初学者”,哈哈!)。
提前感谢你让我恢复理智!:)
编辑:因为我认为问题仅仅是ask_number()函数的语法问题,所以我不想附加太多无关的代码。学到了这一课!:)这是一个完整的循环,所以它看起来确实有一个可变的值。(请注意,"ask_yes_no()“函数也在”游戏“模块中。)
again = None
while again != "n":
players = []
num = games.ask_number(question = "How many players? (2-5): ", low = 2, high = 5)
for i in range(num):
name = input("Player name: ")
score = random.randrange(100) + 1
player = games.Player(name, score)
players.append(player)
print("\nHere are the game results:")
for player in players:
print(player)
again = games.ask_yes_no("\nDo you want to play again? (y/n): ")发布于 2013-12-30 05:54:16
你是说
while again != "n":但你再也没有做过任何事情!因为它再一次不会等于'n‘,它永远不会退出循环
发布于 2013-12-30 05:56:45
您永远不会更改again的值。为了解决这个问题,您可以添加以下内容
again = raw_input("Play again?: ")在while循环的末尾。
https://stackoverflow.com/questions/20830455
复制相似问题