2016-01-25 4 views
-1
Name=str(input("Your name is? ")) 
print("Hello,",Name,"!") 
Age=int(input("And how old might you be? ")) 
print("So you are",Age,"years old?") 
print("So on your next birthday, you will be",Age+1,"?") 
agecorrect=str(input("Yes or no? ")) 
yes= in ["Yes","yes","Y","y","yes.","Yes."] 
no= in ["No","no","N","n","no.","No."] 
if agecorrect=yes: 
    print("Yes, I was right!") 
else 
if agecorrect=no: 
    realage=int(input("So your real age on your next birthday will be? ")) 
    print("So you're actually going to be",realage,"? Good to know!") 
else 
print("I don't understand... I asked for a yes or no answer.") 

Прошу прощения, если этот вопрос задан раньше, но я не знаю, почему мой код не работает, и мне нужна помощь. Благодарю. (Python 3.5.1 кстати)python if заявления со строками

+0

Сообщение об ошибке будет говорить вам ясно, что у вас есть недопустимый синтаксис 'да = в ... '. –

+0

'in [" Yes "," yes "," Y "," y "," yes. "," Yes. "]' Что это? – Maroun

+0

@MarounMaroun это все возможные ответы для да – SirParselot

ответ

3

Вы не можете установить переменную в выражение сравнения, например in [...]. Таким образом,

yes= in ["Yes","yes","Y","y","yes.","Yes."] 

недействителен. Вы должны просто установить yes и no в списках:

yes = ["Yes","yes","Y","y","yes.","Yes."] 
no = ["No","no","N","n","no.","No."] 

, то вы можете использовать if agecorrect in yes:

if agecorrect in yes: 
    print("Yes, I was right!") 
elif agecorrect in no: 
    realage=int(input("So your real age on your next birthday will be? ")) 
    print("So you're actually going to be",realage,"? Good to know!") 
else: 
    print("I don't understand... I asked for a yes or no answer.") 

Вы также отсутствует : после else.

+0

Большое спасибо, и сожалею о плохом вопросе – Nezzeh

+1

@Nezzeh Это прекрасно, важно опираться на ваши ошибки и улучшать ваши будущие должности. – Maroun

+0

'elif', а не' else if'? – LexyStardust

0

Проверки всегда должны выполняться с помощью ==, а не =, который является назначением.

Всегда используйте

if y == 'yes': 

вместо

if y = 'yes': 

Python выбросит вам ошибку, если вы пишете код, приведенный выше, но и другие языки будут просто присвоить значение y и запустить, если заявление ,

+0

Спасибо за это, я буду иметь в виду – Nezzeh

3

Итак ...

Это ваш «фиксированный» код:

# don't use uppercase in variables names, 
# prefer underscores over camelCase or dashes 
# leave space before and after assignment, there are exceptions of this rule 
# but not here ;) 
name = str(input("Your name is? ")) 
print("Hello {}!".format(name)) 
age = int(input("And how old might you be? ")) 

# english grammar man! 
print("So are you {} years old?".format(age)) 
print("So on your next birthday, you will be {}?".format(age + 1)) 
agecorrect = str(input("Yes or no? ")) 

# in is keyword and you use it to check whether item is in collection 
# or its not 
# please don't try to attach it to variable 
# also use space after putting comma 
yes = ["Yes", "yes", "Y", "y", "yes.", "Yes."] 
no = ["No", "no", "N", "n", "no.", "No."] 
if agecorrect in yes: 
    print("Yes, I was right!") 

# you forgot about colon 
elif agecorrect in no: 
    realage = int(input("So your real age on your next birthday will be? ")) 
    print("So you're actually going to be {}? Good to know!".format(realage)) 
else: 
    print("I don't understand... I asked for a yes or no answer.") 
+0

Спасибо за это - также «вы есть» предназначено как заявление, а не вопрос – Nezzeh

2
yes = ("Yes","yes","Y","y","yes.","Yes.") 
question = input("Yes or no? ") 
agecorrect = question in yes 
if agecorrect: 
    # ... 
+1

Вы также можете сделать 'agecorrect = question in yes' – ForceBru

+0

@ForceBru, отредактированный, благодаря – Fred

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