Что не так с этим кодом Python? - PullRequest
0 голосов
/ 16 мая 2009

Я очень новичок, поэтому просто учусь, так что будь спокоен, пожалуйста!

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))

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

Спасибо!

Ответы [ 3 ]

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

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

0 голосов
/ 16 мая 2009
  • Подумайте о том, чтобы запросить ввод, используя функцию, обертывающую цикл.
  • Не используйте 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...