即使我输入“m”或“f”,性别输入循环仍会重复

时间:2016-06-15 23:37:43

标签: python

如果不是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))

6 个答案:

答案 0 :(得分:3)

genderm。看看这句话:

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',这将始终是这种情况,因为它不能同时存在。

更改或修复此问题。