Как проверить, введен ли пользователь в нижнем или верхнем регистре, и все же распечатать ответ
На самом деле я только начинаю программировать на 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, где пользователь вводит слово "бу", мне пришлось добавить оператор или для другой прописной буквы мира. Есть ли способ, чтобы код мог проверять наличие заглавных букв и по-прежнему печатать тот же вывод (или рандомизированный), который я проверил через stackru, но я не могу найти ответ на мою проблему. Спасибо.
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
Надеюсь, что помог:) Алекс
РЕДАКТИРОВАТЬ: Верно, так что я верю, что я получил это сейчас! Ваша проблема в том, что для ввода BOO, например, вы не уверены, будет ли пользователь вводить Boo или BOO или boo, и поэтому вам необходимо проверить все возможные заглавные буквы ввода пользователя. Это было в основном то, что я пытался объяснить в моем ранее!
То, что вы можете сделать, это получить ввод пользователя следующим образом:
userInput = raw_input("Insert Text").lower()
Теперь, при любой прописной букве пользователь вводит слово BOO (Boo,BOo,boo,BOO и т. Д.), Переменная userInput будет во всех этих случаях содержать boo
как мы всегда в нижнем регистре ввода пользователя. Поэтому вместо того, чтобы проверять, например, является ли пользовательский ввод boo или BOO или Boo, вы просто должны проверить, равно ли оно boo
продолжать!
Если вы хотите принять и восклицательные знаки, вам нужно добавить еще одну проверку для этого!
Надеюсь, что это помогло!