如果不是m或f,请重复提示,直到它为或。我键入m或f,但循环不断重复。为什么?
gender = input('m/f? ')
while gender != 'm' or gender != 'f':
print("Type 'm' or 'f'")
gender = input('m/f? ')
if gender == 'm':
gender = 'him'
elif gender == 'f':
gender = 'her'
print("It read {}".format(gender))
答案 0 :(得分:3)
说gender
是m
。看看这句话:
while gender != 'm' or gender != 'f':
gender!='m'
?不,Or
...是gender!='f'
?是!好的,请保持while
!
您不希望or
,您需要and
答案 1 :(得分:0)
由于这条线:
while gender != 'm' or gender != 'f':
改为使用:
while gender != 'm' and gender != 'f':
gender
不能同时包含'm'和'f'
答案 2 :(得分:0)
基本的基础
真或真:真
判断对错:
False或True:True
假或假:错误
只要不满足这两个条件,就必须继续要求输入。
或者必须由'和'替换。
答案 3 :(得分:0)
尝试:
gender = raw_input('m/f?')
while True:
print("Type 'm' or 'f'")
gender = raw_input('m/f? ')
if gender=='m' or gender=='f':
break
if gender == 'm':
gender = 'him'
elif gender == 'f':
gender = 'her'
print(“it read {}”。format(gender))
答案 4 :(得分:0)
已经有很多答案了,但我认为最恐怖的方式,也消除了AND / OR混淆,如果你想为{{1}添加o
,可以轻松扩展}
other
即,性别列表中不存在while gender not in 'mf':
。
答案 5 :(得分:0)
在你的同时,你正在检查字符串性别是否不等于'm'或'f',这将始终是这种情况,因为它不能同时存在。
更改或修复此问题。