2015-10-01 4 views
0

У меня возник вопрос о пользовательском вводе и операторе return.Заявление о возврате в личный кабинет

Например, если бы я хотел, чтобы пользователь вводил цвет, который они набрали, Blue или, возможно, blue.

Я понимаю, что python чувствителен к регистру, поэтому заглавные Blue и строчные буквы blue - это не одно и то же.

В программе, которую я создаю, программа случайным образом генерирует четыре разных цвета.

Проблема в том, что, когда я назначаю значение цвета случайному числу, цвет текста строки заглавный.

Возможно ли, возможно, принять заглавные слова, а также строчные слова с оператором return?

def randomNum(): 
    num = random.randint(1,7) 
    return num 

def randomColor(): 
    if randomNum() == 1: 
     return "Blue" 
    elif randomNum() == 2: 
     return "Green" 
    elif randomNum() == 3: 
     return "Pink" 
    elif randomNum() == 4: 
     return "Purple" 
    elif randomNum() == 5: 
     return "Red" 
    else: 
     return "Yellow" 
+0

Вы можете сократить этот с 'import random; return random.choice (['Blue', 'Green', 'Pink', 'Purple', 'Red', 'Yellow']). lower() '. https://docs.python.org/2/library/random.html#random.choice – ziddarth

ответ

2

Вы должны убедиться, что в точке, где вы звоните функцию, сравнение производится в регистронезависимой моде. Попробуйте это, при сравнении строк:

randomColor().lower() == expected_color.lower() 

Кроме того, вы можете просто вернуть строки в нижний регистр:

return "blue" # same with the others 

... И выполнить сравнение соответственно:

randomColor() == expected_color.lower() 
+0

Есть ли способ сделать это только для оператора return в определении? – Nocturne

+0

@Nocturne, что вы имеете в виду? Оператор return просто возвращает вам значение. Вы не можете заставить его повлиять на значение, которое дал вам пользователь. Исправление состоит в том, чтобы изменить ввод пользователя в нижний регистр при выполнении сравнения. – zstewart

Смежные вопросы