Python Traceback (most recent call last) 错误信息:解读示例

Python Traceback (most recent call last) 错误信息:解读示例2018 11 1211 34 更新 重新排版 欢迎关注微信公众号 陶晨毅 代码之外的资料分享学习打卡站 先说明 本博客不解决任何具体问题 只是初学时为看懂报错信息写的笔记示例 如果一个错误出现后没有被捕获 捕获是什么先不管 现在就理解为出现了一个错误 它就一直被往上抛 最终将被 Python 解释器捕获 然后就在本该输出结果的地方打印一大串错误信息 然后程序退出 示例代码

【2018.11.12 11:34 更新,重新排版】

【欢迎关注微信公众号“陶晨毅”,代码之外的资料分享学习打卡站】

【先说明,本博客不解决任何具体问题,只是初学时为看懂报错信息写的笔记示例】

如果一个错误出现后没有被捕获(捕获是什么先不管,现在就理解为出现了一个错误),它就一直被往上抛,最终将被Python解释器捕获。然后就在本该输出结果的地方打印一大串错误信息,然后程序退出。

示例代码如下:

# 定义一个名为f1的函数 # 接收一个s,将s转化为整数类型后,函数返回1除以s的值 def f1(s): return 1 / int(s) # 定义一个名为f2的函数 # 调用函数f1(),返回f1()返回值+1 def f2(s): return f1(s)+1 # 定义一个名为f3的函数 # 调用函数f2(),返回f2()返回值+1 def f3(s): return f2(s)+1 # 调用f3函数 f3('0')

示例代码执行后结果如下:

D:\Anaconda3\python.exe D:/生活学习日常记录/PycharmProjects/test/main.py Traceback (most recent call last): File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 20, in 
  
    f3('0') File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 16, in f3 return f2(s)+1 File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 10, in f2 return f1(s)+1 File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 4, in f1 return 1 / int(s) ZeroDivisionError: division by zero Process finished with exit code 1 
  

解读错误信息就可以定位错误:

# 解释器在"D:\Anaconda3\python.exe" 执行的程序在"XXX.py" D:\Anaconda3\python.exe D:/生活学习日常记录/PycharmProjects/test/main.py # 错误的跟踪信息 Traceback (most recent call last): # 错误出现在文件"XXX.py",第20行代码,错误来源于此执行模块: File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 20, in 
  
    f3('0') # 出错语句为f3('0') # f3('0')是导致报错的“直接原因”语句 # 错误出现在文件"XXX.py",第16行代码,错误来源于函数f3(): File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 16, in f3 return f2(s)+1 # 出错语句为return f2(s)+1 # 错误出现在文件"XXX.py",第10行代码,错误来源于函数f2(): File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 10, in f2 return f1(s)+1 # 出错语句为return f1(s)+1 # 错误出现在文件"XXX.py",第4行代码,错误来源于函数f1(): File "D:/生活学习日常记录/PycharmProjects/test/main.py", line 4, in f1 return 1 / int(s) # 出错语句为return 1 / int(s) # return 1 / int(s)是导致报错的“根本原因”语句 # 错误类型是:除以零 ZeroDivisionError: division by zero 
  

(2021.5.3补充)

定位完问题,如果是一般的语法错误或者代码逻辑错误,一般思考一下就能理解怎么修改了。如果是一些不熟悉的错误,复制错误类型进行百度搜索,看看其他人是怎么处理的即可。当然更建议Google+StackOverflow,中文内容太多不严谨的来回搬运了,既然学编程早日熟悉英文还是有必要的。

不过偶尔类似中文编码错误或者非代码问题等,好像还是百度更能找到解决方案一点,虽然百度整体内容很辣鸡,但是不得不承认百度经验某些内容真的手把手教我解决了很多百思不得其解的问题。

祝各位编程学习顺利,我不是计算机专业,马上就要毕业啦,未来不当程序员,日后估计不常写代码了。

感兴趣可以关注我的公众号和即刻。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207907.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:49
下一篇 2026年3月19日 下午12:49


相关推荐

  • python语言变量命名规则有什么_Python变量命名规则(超级详细)

    python语言变量命名规则有什么_Python变量命名规则(超级详细)Python需要使用标识符给变量命名,其实标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名字)。Python语言的标识符必须以字母、下画线(_)开头,后面可以跟任意数目的字母、数字和下画线(_)。此处的字母并不局限于26个英文字母,可以包含中文字符、日文字符等。由于Python3支持UTF-8字符集,因此Python3的标识符可以使用UTF-8…

    2022年5月3日
    131
  • AV 详解

    AV 详解AV详解

    2026年2月18日
    4
  • 关于c++数的进制的经验

    默认状态下,数据按十进制输入输出。如果要求按八进制或十六进制输入输出,在cin或cout中必须指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。注意:1.使用不带.h的头文件时,必

    2021年12月20日
    48
  • c 中的TimeSpan类

    c 中的TimeSpan类对于 TimeSpan 不是很清楚 对于其中的代码不甚了解 因此 对于其中所有函数进行输出 就能完整的理解了 c 中的 TimeSpan 了 usingSystem usingSystem Collections Generic usingSystem Linq usingSystem Text usingSystem Threading namespaceCSD

    2026年3月17日
    2
  • double和float区别

    double和float区别double 和 float 区别 float 占 4 个字节 double 占 8 个字节 double 和 float 的区别是 double 精度高 有效数字 16 位 float 精度 7 位 可提供 7 位或 8 位有效数字 构成包括符号位 指数位和尾数位 但 double 消耗内存是 float 的两倍 double 的运算速度比 float 慢得多 能用单精度时不要用双精度 下面这个程序 是计算球的体积 输出的体积必须是 double 格式 否则会报错 include iomanip include iomanip

    2026年3月19日
    4
  • JSONObject获取JSONArray转JSONObject获取某个属性值

    JSONObject获取JSONArray转JSONObject获取某个属性值StringhttpPost4Instream=http.httpPost4InstreamJSONObjectjsonbject=JSONObject.fromObject(httpPost4Instream);JSONArrayjsonArray=jsonbject.getJSONArray("stores");Stringstring=jsonArray.get…

    2022年6月7日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号