如何使字符串比较不区分大小写?

时间:2014-11-23 22:31:50

标签: case

我有以下代码:

print("Now we need to get to know a little about you. What's your name?")
name=input()
print("Ok",name+", are you male, female, or another gender?")
gender=input()
if gender.lower==male.lower:
    print("So you're a man. Great!")
elif gender.lower==female.lower:
    print("So you're a woman. Great!")
else:
    print("Sorry I don't understand. We wont refer to your gender.")
    gender="unknown"
time.sleep(2)

正如你所看到的,我已经尝试了整个“gender.lower”的事情,但如果我输入“男性”,我会得到一个未定义的性别。帮帮我?感谢

3 个答案:

答案 0 :(得分:0)

您需要使用括号,因为lower是一种方法。请尝试gender.lower()male.lower()

使用lower而不使用括号是指内置方法,但不会调用它。如果您在解释器中单独打印gender.lower,您将看到对性别对象的方法的引用。打印male.lower为不同的对象提供类似的参考(打印输出中的内存位置将不同)。因为这些不相同,所以条件失败。

答案 1 :(得分:0)

我认为你应该使用

 "male"

这是单词male,而不是

  male.lower

这是一个尝试调用函数的未定义值

答案 2 :(得分:0)

可能这样的事情更好:

if gender.lower=="male":
    print("So you're a man. Great!")
elif gender.lower=="female":
    print("So you're a woman. Great!")

我无法看到你定义了一个变量男性或女性