0

为什么这段非常简单的 Python 脚本不起作用?

我对 Java 很熟悉,所以我想我会尝试一下 Python……但是为什么这不起作用?

def playAgain(roundCounter):
    reply = ""
    replyList='y n'.split()
    if roundCounter == 1:
        print('Would you like to play again? Y/N')
        while not reply in replyList:
            reply = input().lower  
        if reply == 'y':
            roundCounter == 1
        elif reply == 'n':
            print('Thanks for playing! Bye!')
            sys.exit()  

这应该打印“你想再玩一次吗?” 然后继续请求用户输入,直到他们输入“Y”或“N”。

出于某种原因,它会一遍又一遍地循环,并且不会跳出循环——即使我输入“y”或“n”。

这是一段如此简单的代码,我不明白为什么它不起作用 - 事实上,我之前在我的脚本中使用了几乎相同的一段代码,它运行良好!

4

2 回答 2

8

你忘记了括号:

reply = input().lower  # this returns a function instead of calling it

做这个:

reply = input().lower()

编辑:正如 arshajii 所指出的,你也做错了任务:

if reply == 'y':
    roundCounter == 1  # change this to: roundCounter = 1

==是相等运算符并返回一个布尔值,赋值由=完成

于 2013-09-01T16:56:46.603 回答
0
import sys

def playAgain(roundCounter):
    reply = ""
    replyList='y n'.split()
    if roundCounter == 1:
        print('Would you like to play again? Y/N')
    while not reply in replyList:
        reply = input().lower()
    if reply == 'y':
        roundCounter = 1
    elif reply == 'n':
        print('Thanks for playing! Bye!')
        sys.exit()

playAgain(1)
于 2013-09-01T17:05:49.887 回答