Python 如何使输入不区分大小写?

Python 如何使输入不区分大小写?,python,python-3.x,string,Python,Python 3.x,String,如何处理输入字符串,使所有拼写正确的单词都得到相同的处理,不区分大小写 例如: 以任何形式输入一月,只要拼写正确即可 在这里,一月,一月,一月-应该被同样对待 m = input("What month were you born?\n") d = input("What day were you born?\n") y = input("What year were you born\n") months = ["Janu

如何处理输入字符串,使所有拼写正确的单词都得到相同的处理,不区分大小写

例如:
以任何形式输入
一月
,只要拼写正确即可
在这里,
一月
一月
一月
-应该被同样对待

m = input("What month were you born?\n")
d = input("What day were you born?\n")
y = input("What year were you born\n")

months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

print("Your birthday is " + str(months.index(m)+1) + "/" + d + "/" + y)
将输入更改为:

d = input("What day were you born?\n").lower()
y = input("What year were you born\n").lower()
这会将每个字符串转换为所有小写字符串

在输入上使用
lower()
string.capitalize()
函数:

d = "jaNuARY"

d.lower().capitalize()
Out[2]: 'January'
这样,您将始终获得与您的词典匹配的任何输入相同的拼写-一月而不是一月等


这也是一个很好的解决方案,因为您不需要更改词典

您应该首先在
月份
列表中使用小写名称。应该是这样的:

months=[“一月”、“二月”、…]
使用
lower()
方法将输入转换为小写

m=input(“您出生的月份?\n”).lower()

因此,收到的输入总是小写的,您可以像最初一样使用
索引。

尽管其他答案足以解决您的问题,但由于您在问题中提到了python字典,这里有一种更快、更简洁的方法-

•在
O(n)
的列表中查找,而在字典中是
O(1)

根据您在列表中存储月份的方式,使用.lower()或.upper()或[.lower()和.capatalize()]方法。

您可以将.capitalize()方法添加到输入函数中。
months = {"January": '1', "February": '2', "March": '3', "April": '4', "May": '5', "June": '6', "July": '7', "August": '8', "September": '9', "October": '10', "November": '11', "December": '12'}

m = input("What month were you born?\n")
d = input("What day were you born?\n")
y = input("What year were you born?\n")

print("Your birthday is {0}/{1}/{2}".format(months[m.lower().capitalize()], d, y))