用户输入并插入while循环

MrW*_*ace 1 python if-statement while-loop python-3.x

我希望我的代码接受用户输入,然后提示用户继续,如果他们回答'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)? ')
Run Code Online (Sandbox Code Playgroud)

Reu*_*ani 6

这不是如何or工作:

while prompt != 'y' or 'n':
Run Code Online (Sandbox Code Playgroud)

你可能意味着:

while prompt != 'y' or prompt != 'n':
Run Code Online (Sandbox Code Playgroud)

您的版本or小号prompt != 'y''n',它总是至少产生了最后的真相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)? ')
Run Code Online (Sandbox Code Playgroud)

要做到这些类型的输入回路的我通常使用的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)? ')
Run Code Online (Sandbox Code Playgroud)