2009-05-16 4 views
-1

Я очень новый, так что просто учись, так что, пожалуйста, прошу!Что не так с этим кодом Python?

start = int(input('How much did you start with?:')) 
if start < 0: 
    print("That's impossible! Try again.") 
    print(start = int(input('How much did you start with:'))) 
if start >= 0: 
    print(inorout = raw_input('Cool! Now have you put money in or taken it out?: ')) 
    if inorout == in: 
     print(in = int(raw_input('Well done! How much did you put in?:'))) 
     print(int(start + in)) 

Это всегда приводит к синтаксической ошибке? Я уверен, что я делаю что-то очевидное неправильно!

Спасибо!

+0

Вы работаете в этом через python 3 или 2.x? –

ответ

7
  • Вы не можете назначать переменные в выражениях в Python, например, в C: print (start = int (input ('blah'))) неверно. Выполняйте назначение сначала в отдельном заявлении.
  • Первая строка не должна быть отступом, но это может быть просто ошибка копирования и вставки.
  • Слово in является зарезервированным словом, так что вы не можете использовать его для имен переменных
+0

И 'in' не определен в if-условии, и есть либо вход (python 3), либо raw_input. – Dario

+0

должно быть inorout == "in", зарезервированное слово, не предназначенное как имя переменной. – gimel

3

Назначение в операторах ваша проблема. Переместить задания из заявлений на печать

+0

печать функция здесь. – SilentGhost

0
  • Рассмотрите возможность ввода ввода с использованием функции, обертывающей цикл.
  • Не используйте input для общего пользовательского ввода, используйте raw_input вместо
  • Оберните выполнение скрипта в основной функции, так что не выполняется на импорт

def ask_positive_integer(prompt, warning="Enter a positive integer, please!"): 
    while True: 
     response = raw_input(prompt) 
     try: 
      response = int(response) 
      if response < 0: 
       print(warning) 
      else: 
       return response 
     except ValueError: 
      print(warning) 

def ask_in_or_out(prompt, warning="In or out, please!"): 
    ''' 
    returns True if 'in' False if 'out' 
    ''' 
    while True: 
     response = raw_input(prompt) 
     if response.lower() in ('i', 'in'): return True 
     if response.lower() in ('o', 'ou', 'out'): return False 
     print warning 

def main(): 
    start = ask_positive_integer('How much did you start with?: ') 
    in_ = ask_in_or_out('Cool! Now have you put money in or taken it out?: ') 
    if in_: 
     in_amount = ask_positive_integer('Well done! How much did you put in?: ') 
     print(start + in_amount) 
    else: 
     out_amount = ask_positive_integer('Well done! How much did you take out?: ') 
     print(start - out_amount) 

if __name__ == '__main__': 
    main() 
Смежные вопросы