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
我的代码:
基本上,我正在读取列表中的输入。如果它不是整数,它应该给出错误,并跳过该输入并在我写 "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
.