您的位置:

python出现,python出现nameerror

本文目录一览:

python运行后显示Traceback (most recent call last):什么意思?

意思是:回溯(最近的一次呼叫)

这里表示您的Python程序出现了异常,括号中通俗的解释就是代码中引发异常的位置。

Python中一般使用try-except捕获异常。这样,如果引发异常,程序可对异常进行处理。避免了Traceback(most recent call last)等这样一些不友好的语句出现。

比如下面一个除零操作:

import traceback

try:

num = 1/0

except:

traceback.print_exc()

Traceback (most recent call last):

File "C:/Users/Administrator/AppData/Roaming/JetBrains/PyCharmCE2021.2/scratches/scratch.py", line 5, in module

num = 1/0

ZeroDivisionError: division by zero

黑体标注的是异常具体位置。

如果对异常进行处理,就不会显示这些回溯信息(Trackback这些内容)

try:

num = 1/0

except:

print('异常了')

这里程序只打印‘异常了’这三个字,但在具体编写程序时,不建议这样使用。使用中建议指明具体的异常类型。如下:

try:

num = 1 / 0

except ZeroDivisionError as e:

print(str(e))

打印输出“division by zero”,比Traceback友好多了!

希望回答对您有帮助!

在python中出现这种情况为什么

python为什么会出现这种错误?

这是 Python 的浮点数精度问题,因为 Python 在存储浮点数的方法是存储二进制的科学计数法。

8 字节 64 位存储空间分配了 52 位来存储浮点数的有效数字,11 位存储指数,1 位存储正负号。

简单来说,因为小数点后面理论上可以有无限位数,所以不可能在有限字节中精确存储,所以用的是类似科学计数法的非精确存储。我们用分数来打比方,0.333334 可以用 1/3 来表示,但是 1/3 不等于 0.333334。所以在 Python 中就出现了这个问题,不光是 Python,其他语言也有类似的问题。

如何解决这种问题

接下来我们看看如何解决这个问题。

对于精确度要求不高的场景,可以计算后使用 round 函数近似。

对于确定小数位数的场景,例如金额 1.01,固定两位小数,则可以乘以 100 以后用整型保存。

对于精确度要求高的场景,Python 有 decimal 模块处理。

Python 运行报错NameError出现原因,怎么解决

python程序,报错NameError: name XX is not defined 是没有声明造成的,需要在文件的前两行进行声明编码,声明方法为:

1、写一个python文件,文件中有中文字符,且未声明编码。

2、当程序文件中,存在中文字符时候,文件未声明编码格式就会出现报错信息:  File "encode.py", line 1SyntaxError:

Non-ASCII character '\xe7' in file encode.py on line 1, but no encoding

declared; see //..python.../dev/peps/pep-0263/ for details for details。

3、根据错误提示,在python官网得到如下帮助信息。

4、所以,按照帮助文档的提示以及例子,在Python文件中加入一个编码声明。

5、保存之后,再次运行,运行成功。