如何检查用户输入是小写还是大写并输出答案

0 投票
1 回答
5070 浏览
提问于 2025-04-17 22:44

我刚开始学习用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!

不过,如果你还想接受感叹号的话,那你还需要添加一个检查来处理这个情况!

希望这对你有帮助!

撰写回答