我希望我的代码接受用户输入,然后提示用户继续,如果他们回答“' 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)? ')
答案 0 :(得分:5)
这不是or
的工作方式:
while prompt != 'y' or 'n':
你可能意味着:
while prompt != 'y' or prompt != 'n':
您的版本or
s 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)? ')
要进行这类输入循环,我通常会将while True
与break
:
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)? ')
答案 1 :(得分:-2)
你必须使用 raw_input()才能将非数值变量作为输入。