2014-11-23 3 views
-2

У меня есть следующий код:Как сделать сравнение строк нечувствительным к регистру?

print("Now we need to get to know a little about you. What's your name?") 
name=input() 
print("Ok",name+", are you male, female, or another gender?") 
gender=input() 
if gender.lower==male.lower: 
    print("So you're a man. Great!") 
elif gender.lower==female.lower: 
    print("So you're a woman. Great!") 
else: 
    print("Sorry I don't understand. We wont refer to your gender.") 
    gender="unknown" 
time.sleep(2) 

Как вы можете видеть, я пытался всем «gender.lower» вещь, но все же, если я типа в «Мужской» Я получаю неопределенный пол. Выручи меня? Спасибо

+2

На каком языке это? Пожалуйста, отметьте вопрос на правильном языке. – iblamefish

ответ

0

Вам нужно использовать круглые скобки, поскольку метод lower - это метод. Попробуйте вместо этого gender.lower() и male.lower().

Использование нижнего без круглых скобок относится к встроенному методу, но не вызывает его. Если вы напечатаете gender.lower самостоятельно в интерпретаторе, вы увидите ссылку на метод для объекта gender. Печать male.lower дает аналогичную ссылку для другого объекта (расположение памяти в распечатке будет отличаться). Поскольку они не идентичны, условие не выполняется.

0

я думаю, вы должны использовать

"male" 

который является слово мужчина, вместо

male.lower 

который является неопределенным значением, которое пытается вызвать функцию

0

mayby ​​это лучше что-то например:

if gender.lower=="male": 
    print("So you're a man. Great!") 
elif gender.lower=="female": 
    print("So you're a woman. Great!") 

Я не вижу, что вы определили переменную Male или Female

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