如何检查用户输入是小写还是大写并输出答案
我刚开始学习用Python编程,写了一个小程序,可以根据用户输入做出反应。我希望这个程序能做到,不管用户输入的字母是大写还是小写,代码都能正常工作。这是我目前写的代码。
我不能上传图片,因为我的积分不够,但我想我可以解释清楚。
这是我现在的代码
它会循环并对特定的用户输入做出反应
import random
BOO = ("Aghh!", "That wasn't just a fart!", "Oh, I was soo scared", "I am so terrified right now", "Where did you spring from?!", "If this was any more scary it would be R rated!")
x = ""
print "I am a simple computer program designed to respond to certain inputs from a user"
x = raw_input("Input: ")
while not(x == "exit" or x == "Exit"):
if x == "Oli" or x== "oli" or x == 'Oliver' or x == 'oliver':
print "Its the creator!"
elif x == "hi" or x == "hello" or x == "Hi" or x == "Hello":
print "Hi!"
elif x == "how are you?" or x == "how are you":
print "Fine thanks!"
elif x == "boo!" or x == "boo" or x == "BOO!" or x == "Boo":
print random.choice(BOO)
elif x == "You are actually awesome":
print "Aww, Thanks!"
else:
print "Hello, " + x
x = raw_input("Input: ")
举个例子:在第21行,用户输入“boo”这个词时,我不得不为不同的大写形式添加一个或语句。有没有办法让代码检查字母的大小写,同时仍然输出相同的结果(或者随机的结果)?我在StackOverflow上查过,但找不到解决我问题的方法。谢谢。
1 个回答
1
如果我理解得没错,你是想把用户输入的内容不管是什么都变成大写或小写,这样就不用每次都去检查字母的大小写了。
所以你可以在获取用户输入后使用大写函数或者小写函数:
userInput = raw_input("Insert text").upper()
或者
userInput = raw_input("Insert text").lower()
如果你只是想测试输入的是大写字母还是小写字母,你可以导入字符串模块,然后使用 string.ascii_lowercase 或 string.ascii_uppercase。
import string
userInput = raw_input("Insert text")
print userInput in string.ascii_lowercase
print userInput in string.ascii_uppercase
希望这对你有帮助 :)
Alex
编辑:好的,我现在明白了!你的问题是,比如输入 BOO 的时候,你不确定用户会输入 Boo、BOO 还是 boo,所以你必须检查用户输入的所有可能的大小写。这就是我之前想解释的内容!
你可以这样获取用户的输入:
userInput = raw_input("Insert Text").lower()
现在,无论用户输入的 BOO 是什么大小写(Boo、BOo、boo、BOO 等等),变量 userInput 在所有这些情况下都会包含 boo
,因为我们总是把用户的输入转换成小写。所以你只需要检查它是否等于 boo
就可以继续,而不需要检查用户输入的是 boo、BOO 还是 Boo!
不过,如果你还想接受感叹号的话,那你还需要添加一个检查来处理这个情况!
希望这对你有帮助!