为什么';t如果、elif或else在Python中使用.lower()?

为什么';t如果、elif或else在Python中使用.lower()?,python,if-statement,python-3.x,lowercase,Python,If Statement,Python 3.x,Lowercase,程序需要接受并匹配单词的任何大写和小写版本,这就是使用.lower()的原因。运行此命令并输入“一月”时,将打印else行而不是if行 month = input("\nPlease enter the month\n") if month.lower == ("january"): month = int(1) print(month) elif month.lower == ("february"): month = int(2) print(month) e

程序需要接受并匹配单词的任何大写和小写版本,这就是使用.lower()的原因。运行此命令并输入“一月”时,将打印else行而不是if行

month = input("\nPlease enter the month\n")
if month.lower == ("january"):
    month = int(1)
    print(month)
elif month.lower == ("february"):
    month = int(2)
    print(month)
elif month.lower == ("march"):
    month = int(3)
    print(month) #etc.
else:
    print("That is not a month\n")

您需要调用以下方法:

month.lower() == 'march'
该方法也是一个对象,不调用它,您将该方法与字符串进行比较。他们永远不会平等:

>>> month = 'January'
>>> month.lower
<built-in method lower of str object at 0x100760c30>
>>> month.lower == 'January'
False
>>> month.lower == 'january'
False
>>> month.lower() == 'january'
True
>month='一月'
>>>月下
>>>month.lower==“一月”
错误的
>>>month.lower==“一月”
错误的
>>>month.lower()=“一月”
符合事实的

不会导致问题,但字符串周围不需要括号
if month.lower()=“一月”:
应该可以工作。