我有一个if语句:
rules = input ("Would you like to read the instructions? ")
rulesa = "Yes"
if rules == rulesa:
print ("No cheating")
else: print ("Have fun!")
我希望用户能够回答Yes,YES,yES,yes或任何其他大小写,并且代码知道他们的意思是Yes。
答案 0 :(得分:8)
对于这个简单示例,您只需将小写的rules
与"yes"
进行比较:
rules = input ("Would you like to read the instructions? ")
rulesa = "yes"
if rules.lower() == rulesa:
print ("No cheating")
else:
print ("Have fun!")
对于很多情况都可以,但请注意,某些语言可能会给您带来棘手的结果。例如,德语字母ß
给出以下内容:
"ß".lower() is "ß"
"ß".upper() is "SS"
"ß".upper().lower() is "ss"
("ß".upper().lower() == "ß".lower()) is False
所以我们可能会遇到麻烦,如果我们在调用lower()
之前我们的字符串是大写的。
希腊语也可以满足相同的行为。阅读帖子
https://stackoverflow.com/a/29247821/2433843了解更多信息。
因此,在一般情况下,您可能需要使用 str.casefold()
函数(因为python3.3),它处理棘手的情况,是建议的案例独立比较的方法< /强>:
rules.casefold() == rulesa.casefold()
而不仅仅是
rules.lower() == rulesa.lower()
答案 1 :(得分:2)
使用以下内容:
if rules.lower() == rulesa.lower():
在测试相等性之前,这会将两个字符串转换为小写。
答案 2 :(得分:2)
一种常见的方法是使输入大写或小写,并与大写或小写字词进行比较:
rulesa = 'yes'
if rules.lower() == rulesa:
# do stuff
答案 3 :(得分:0)
您可以进行大写比较或小写比较。
例如:
rulesa.upper() == rules.upper()
或
rulesa.lower() == rules.lower()
两者都会为您输出 true
答案 4 :(得分:-2)
rules = raw_input("Would you like to read the instructions? ")
rulesa = "Yes"
if (rules == rulesa) or (rules.lower() == rulesa.lower()) or rules.upper() == rulesa.uppper():
print ("No cheating")
else: print ("Have fun!")
无论输入如何,每次都会有效,并且会保留用户输入的内容!玩得开心。