Python:绝对初学者Python编程 "games"模块中的循环错误

标签 python loops

我正在学习 Python,但在这段代码中遇到了障碍。我什至拉下了作者的代码,它也有同样的问题。 :(

导入“random”模块和“games”模块(其中包括“ask_number()”函数和“Player”的类定义)后,我们有:

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()”函数也在“games”模块中。)

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): ")

最佳答案

你说的是

while again != "n":

但你再也没有设置过!因为再次永远不等于“n”,所以它永远不会退出循环

关于Python:绝对初学者Python编程 "games"模块中的循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830455/

相关文章:

java - 根据输入的数量在 while 循环中创建多个 java 线程

Unicode 和 csv 问题中的 Python 数组打印

python - 以 django 形式使用 url 中的 pk

python - 基于对象现有的 ot 或属性,以更 Pythonic 的方式改进重复的 for 循环

c++ - 我怎么能在这个简单的 C++ 游戏中转到另一个 "map"?

c++ - 简单的 C++ 循环前缀后缀运算符

c - 带文件输入跳过条件的算法-C语言

python - 添加一个标志,指示 pandas 中每个组的列已更改

python - 删除列表中满足条件的列表

c++ - 在C++中输入无效时再次提示