用户输入并陷入 while 循环

User input and stuck in while loop

我希望我的代码接受用户输入,然后提示用户继续,如果他们回答 'y' 然后它要求另一个输入,如果他们回答 'n' 程序停止,如果他们键入任何其他字符它只是继续提示他们直到他们输入 'y' 或 'n'.

如代码所示,我正在尝试使用 while 循环不断提示用户,直到他们输入 'y' 或 'n'。但是,当我到达 while 循环时,它不会在输入 'y' 或 'n' 时停止。

def test():

    number = input('Input a number then press enter:')    
    print(number)
    prompt = input('Continue (y/n)? ')

    if prompt == 'y':
        number = input('Input a number then press enter:')
        print(number)
        prompt = input('Continue (y/n)? ')
    elif prompt == 'n':
        pass

    else:
        while prompt != 'y' or 'n':
        prompt = input('Continue (y/n)? ')

这不是 or 的工作方式:

while prompt != 'y' or 'n':

你的意思可能是:

while prompt != 'y' or prompt != 'n':

您的版本 ors prompt != 'y''n',它总是至少产生最后一个 truth-y 值 ('n')。

完整代码:

def test():

    number = input('Input a number then press enter:')    
    print(number)
    prompt = input('Continue (y/n)? ')

    if prompt == 'y':
        number = input('Input a number then press enter:')
        print(number)
        prompt = input('Continue (y/n)? ')
    elif prompt == 'n':
        pass

    else:
        while prompt != 'y' or prompt != 'n':
            prompt = input('Continue (y/n)? ')

为了做这些类型的输入循环,我通常使用 while Truebreak:

def test():

    prompt = 'y'
    while True:
        if prompt == 'y':
            number = input('Input a number then press enter:')
            print(number)
        elif prompt == 'n':
            break
        prompt = input('Continue (y/n)? ')

您必须使用 raw_input() 才能将非数值变量作为输入。