【问题标题】:Why doesn't if, elif or else work with .lower() in Python? [closed]为什么 if、elif 或 else 在 Python 中不能与 .lower() 一起使用? [关闭]
【发布时间】:2015-03-27 22:25:03
【问题描述】:

程序需要接受并匹配单词的任何大小写版本,这就是使用 .lower() 的原因。当它运行并输入 'January' 时,将打印 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")

【问题讨论】:

  • 不会导致问题,但您不需要在字符串周围使用括号。 if month.lower() == "january": 应该可以工作。

标签: python if-statement python-3.x lowercase


【解决方案1】:

你需要调用方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 2021-09-18
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多