If string statement: What am I missing?
本问题已经有最佳答案,请猛点这里访问。
我创建了一个简单的代码,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | name = str(input ("What is your name?")) gender = str(input ("What is your gender?")) if gender == 'male' or 'Male': print ("Hello Mr %s" % (name)) elif gender == 'female' or 'Female': print ("Hello Mrs %s" % (name)) else: print ('Invalid gender. Please try again.')  | 
然而,无论我输入什么性别(甚至是像
在步骤中
首先使用正确的变量名:
1  | gender = input("What is your gender?")  | 
其次,使用
1 2  | >>> 'male' or 'Male' 'male'  | 
用途:
1  | if gender == 'male' or gender == 'Male':  | 
或者使用:
1  | if gender.lower() == 'male':  | 
整个程序
1 2 3 4 5 6 7 8 9  | name = input("What is your name?") gender = input("What is your gender?") if gender.lower() == 'male': print("Your are %s" % (gender)) elif gender.lower() == 'female': print("Your are %s" % (gender)) else: print('Invalid gender. Please try again.')  | 
较短版本
1 2 3 4 5 6 7  | name = input("What is your name?") gender = input("What is your gender?") if gender.lower() in ('male', 'female'): print("Your are %s" % (gender.lower())) else: print('Invalid gender. Please try again.')  | 
当与多个字符串进行比较时,需要以不同的方式进行比较:
1  | if gender == 'male' or gender == 'Male':  | 
或者更简单地说:
1  | if gender in ['male', 'Male']:  | 
或用一套:
1  | if gender in {'male', 'Male'}:  | 
速度差别不大,只有两件,但有很多项集合将更快,因为它使用哈希表,而列表使用线性搜索。
现在,关于您的代码发生了什么。如果你这样做:
1  | if gender == 'male' or 'Male':  | 
你是说:
1  | if (gender == 'male') or ('Male'):  | 
所以,不管