Так что я изначально написал этот код как кучу операторов if/elif/else, чтобы набирать очки, чтобы выяснить, кто такой человек. Проблема заключалась в том, что я не мог понять, как заставить выражение else вернуться к исходному вопросу, поскольку этот вопрос был представлен только оператором variable = raw_input. Идея заключалась в том, чтобы сделать ее сложной для многих моих друзей. При исправлении исходной проблемы с помощью инструкции else я испортил часть добавления, чтобы определить ответ. Как я могу исправить это, чтобы на самом деле считать, как это происходит? Как вы можете видеть, я очень новичок в кодировании. Прошу прощения за основной вопрос, так как я уверен, что ответ очень прост. Я ценю любую помощь.Python добавление через if else и def
from sys import exit
Tom = 0
Jon = 0
Chris = 0
def question_a():
q1 = raw_input("Hello there. I am going to try to guess who you are. Would you like to play?")
if q1 == "yes":
question_b()
elif q1 == "no":
print "Well f**k you too then"
else:
print "You should follow the rules."
question_a()
def question_b():
print "Do you have any hair?"
q1 = raw_input("> ")
if q1== "no":
print "you're Karl"
exit(0)
elif q1 == "yes":
Tom == Tom + 1
Chris == Chris + 1
Jon == Jon + 1
question_c()
else:
print "You should follow the rules."
question_b()
def question_c():
print "Do you enjoy working on cars?"
q1 = raw_input("> ")
if q1 == "yes":
Chris == Chris + 1
Jon == Jon + 1
question_d()
elif q1 == "no":
Tom == Tom + 1
question_d()
else:
print "you should follow the rules."
question_c()
def question_d():
print "Do you own a husky?"
q1 = raw_input("> ")
if q1 == "no":
Tom == Tom + 1
Chris == Chris + 1
elif q1 == "yes":
Jon == Jon + 1
else:
print "Hey you, follow the rules."
question_d()
# python guess_who2.py
for Tom > Jon and Tom > Chris:
print "You're Tom"
for Jon > Chris and Jon > Tom:
print "You're Jon"
for Chris > Tom and Chris > Jon:
print "You're Chris"
question_a()
Вы перепутали гораздо больше. Из-за синтаксических ошибок эта программа не запускается. Я рекомендую инкрементное программирование: пишите несколько строк за раз. Получите тех, кто работает, прежде чем писать больше. Продолжайте это, пока не получите проблему, которую вы не можете решить. – Prune
Вы использовали ** == ** вместо ** = ** для назначения. Ваши счетчики должны быть глобальными переменными, а не локальными. Вы делаете рекурсивные вызовы (функция, вызывающая себя) без особых причин. Вам действительно нужно исправить эти вещи, прежде чем вы сможете беспокоиться о своей логике подсчета. В конце вы используете ключевое слово ** для ** для принятия решения; это должно быть больше ** если ** заявления. – Prune