Python выдает ошибку, если я запускаю этот код из cmd, однако работает нормально, если я запускаю его из Jupyter - PullRequest
0 голосов
/ 12 марта 2020

Мой код:

По сути, я читаю входные данные в списке. Он должен выдавать ошибку, если это не целое число, и пропустить этот ввод и остановиться, когда я напишу «готово». Затем я создаю счетчик, сумму и среднее значение, которые я печатаю.

total = 0
count = 0
list = []

while True:
    num = input("Enter a number: ")
    if num == "done":
        break
    try:
        fnum = float(num)
        list.append(fnum)
    except:
        print("Invalid input")
        print(fnum, type(fnum))
        continue
print(list)
for i in list:
    count += 1
    total += i
print(total, count, "Average: ", total/count)

Сообщение об ошибке

Как я уже сказал, оно работает нормально от Jupyter или Colab, но я получаю следующую ошибку сообщение от cmd:

Если я введу случайную строку:

Traceback (most recent call last):
  File "C:location\file.py", line 6, in <module>
    num = input("Enter a number: ")
  File "<string>", line 1, in <module>
NameError: name 'asd' is not defined

Если я введу готово:

Traceback (most recent call last):
  File "C:location\file.py", line 6, in <module>
    num = input("Enter a number: ")
  File "<string>", line 1, in <module>
NameError: name 'done' is not defined

1 Ответ

1 голос
/ 12 марта 2020

Возможно, вы используете его Python 2. Jupyter использует Python 3, так что никаких проблем. Однако в python2 функция input() принимает ввод и выполняет его как код . Вы ввели asd - и python жалуется, что нет переменной asd (то же самое для done). Запустите его, используя python 3, или используйте функцию raw_input(), которая имеет тот же эффект, что и input() в python 3, но в python 2 (то есть без кода запуска).

Редактировать :

Если вы используете python filename.py для запуска своего кода - попробуйте python -V. Я дам вам python версию. Если я исправлю, в большинстве случаев вы можете получить доступ к python3, используя python3 вместо python.

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