Синтаксическая ошибка в простой программе Python 3.2.2 - PullRequest
1 голос
/ 26 декабря 2011

Этот код является примером кода из книги по Python.Это простая программа для ввода целых чисел и отображения суммы, общего количества и среднего числа целых чисел.Однако когда я пытаюсь запустить код, я получаю синтаксическую ошибку в строке 18, двоеточие.Этот код выглядит прекрасно для меня.Любые идеи?

print("type integers, each followed by Enter; or just Enter to finish")

total = 0
count = 0

while True:
    line = input("integer: "
    if line:
        try:
            number = int(line)
        except ValueError as err:
            print(err)
            continue
    total += number
    count += 1
    else:
        break
if count:
    print("count=", count, "total =", total, "mean =", total / count)

Когда я пытаюсь запустить это, я получаю сообщение об ошибке:

  File "./intproj.py", line 18
    else:
       ^
SyntaxError: invalid syntax

Я использую IDLE в качестве IDE с Python 3.2.2 на Ubuntu 11.10


обновил код:

print("type integers, each followed by Enter; or just Enter to finish")

total = 0
count = 0

while True:
    line = input("integer: ")
    if line:
        try:
            number = int(line)
        except ValueError as err:
                print(err)
                continue
    total += number
    count += 1
    else:
        break
if count:
    print("count=", count, "total =", total, "mean =", total / count)

и теперь получаю ошибку:

  File "./intproj.py", line 18
    else:
       ^
SyntaxError: invalid syntax

Исправлен код:

print("type integers, each followed by Enter; or just Enter to finish")

total = 0
count = 0

while True:
    line = input("integer: ")
    if line:
        try:
            number = int(line)
        except ValueError as err:
                print(err)
                continue
        total += number
        count += 1
    else:
        break
if count:
    print("count=", count, "total =", total, "mean =", total / count)

Спасибо!

Ответы [ 5 ]

6 голосов
/ 26 декабря 2011

в строке 9, по-видимому, отсутствует )

изменение:

line = input("integer: "

в

line = input("integer: ")

Строка except должна иметь отступ, чтобы соответствовать try

и строки:

total += number
count += 1

также должен иметь отступ, иначе операторы if и else не совпадают. То есть код должен быть примерно таким:

print("type integers, each followed by Enter; or just Enter to finish")

total = 0
count = 0

while True:
    line = input("integer: ")
    if line:
        try:
            number = int(line)
        except ValueError as err:
            print(err)
            continue
        total += number
        count += 1
    else:
        break
if count:
    print("count=", count, "total =", total, "mean =", total / count)
1 голос
/ 26 декабря 2011

Вам нужна закрывающая скобка:

line = input("integer: ")
1 голос
/ 26 декабря 2011

Вы забыли закрыть свой input() звонок на предыдущей линии.

0 голосов
/ 26 декабря 2011

Строки, начинающиеся с total += и count +=, должны начинаться с восьми пробелов вместо четырех.

0 голосов
/ 26 декабря 2011

В дополнение к проблеме с закрывающими скобками, ваша строка с надписью except ValueError as err: недостаточно отступа (уровень отступа должен соответствовать уровню оператора try) Это должно исправить ошибку строки 18 else, о которой вы упоминали выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...