Python 如果我 运行 来自 cmd 的代码会出错,但是如果我 运行 来自 Jupyter 则 运行 没问题

Python gives error if I run this code from cmd, however runs fine if I run it from Jupyter

我的代码:

基本上,我正在读取列表中的输入。如果它不是整数,它应该给出错误,并跳过该输入并在我写 "done" 时停止。然后我创建一个计数、总和和平均值,然后打印出来。

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

可能你 运行 使用 Python 2. Jupyter 使用 Python 3,所以没问题。但是在 python2 中,input() 函数接受输入 并将其作为代码 执行。您输入了 asd - python 抱怨没有 asd 变量(done 也是如此)。 运行 它使用 python 3,或使用 raw_input() 函数,它与 python 3 中的 input() 具有相同的效果 - 但在 python 2 中(即没有 运行ning 代码)。

编辑:

假设您使用 python filename.py 来 运行 您的代码 - 尝试 python -V。我会给你 python 版本。如果我更正,大多数时候你可以使用 python3 而不是 python.

来访问 python3