簡體   English   中英

如何使輸入不區分大小寫?

[英]How do I make the input case-insensitive?

如何處理輸入字符串,以便所有正確拼寫的單詞都被視為相同,不區分大小寫?

例如:
只要拼寫正確,可以以任何形式輸入January
在這里, januaryJANUARYJaNuArY - 應該被同等對待。

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)

盡管其他答案足以解決您的問題,但由於您在問題中提到了 python 字典,因此這里有一個更快、更整潔的方法 -

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

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))

將輸入更改為:

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

這會將每個字符串轉換為全小寫字符串

資源

在您的輸入中使用lower()string.capitalize() function:

d = "jaNuARY"

d.lower().capitalize()
Out[2]: 'January'

這樣,您將始終獲得任何輸入的相同拼寫 - 一月而不是一月等,與您的字典相匹配。

這也是一個很好的解決方案,因為您不需要更改您的字典

您應該首先在months列表中使用小寫名稱。 它應該如下所示:

months = ["january", "february", ...]

使用lower()方法將輸入轉換為小寫。

m = input("What month were you born?\n").lower()

因此,接收到的輸入總是小寫的,你可以像原來一樣使用index

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM