重玩代码问题

1 投票
2 回答
836 浏览
提问于 2025-04-18 05:26

我在代码上遇到了一些问题,想让游戏可以“再玩一次”。这是我的代码:

playing = True
while playing:
    game()
    play_again = raw_input("Would you like to play again? Y|N").lower
    if (play_again == "n"):
        playing = False

但是,当我输入“n”或者“N”时,游戏还是会继续进行。有没有什么想法?

2 个回答

1

这段内容是关于编程问题的讨论,主要集中在如何解决特定的技术难题。大家在这里分享自己的经验和解决方案,帮助彼此理解和克服遇到的困难。

在这个过程中,参与者可能会提到一些代码示例,或者给出一些建议和最佳实践,目的是让其他人能够更容易地理解和应用这些技术。

总之,这里是一个互相学习和交流的地方,大家都在努力让编程变得更简单、更有效。

    play_again = raw_input("Would you like to play again? Y|N ").strip().lower()
3

你存储的是 str.lower 方法,而不是它的结果。要真正“调用”这个方法,需要加上 ()

raw_input("Would you like to play again? Y|N").lower()

在Python中,方法和其他东西一样都是对象,你可以像存储字符串一样存储这些方法:

>>> 'NO'.lower
<built-in method lower of str object at 0x1058d8c88>
>>> 'NO'.lower()
'no'

与其使用一个标志变量,不如用 break 来退出循环,用 True 来让循环变成无尽循环:

while True:
    game()
    play_again = raw_input("Would you like to play again? Y|N").lower
    if play_again == "n":
        break

在这里,break 这个关键词会立即结束循环,而不需要先回到顶部再检查一个变量。

撰写回答