python 除数不能为零的报错有哪些_【社区精选40】Python错误处理及代码调试方法(文末赠书中奖名单)...

6d555f1afd04bf4bcb0d1518263b9b03.gif

本文整理自爱数据学院中的问答

更多精彩问答,进入下方社区网站查看

http://www.lovedata.cn/invitation


社区精选话题 第40期

Python错误处理及代码调试方法

一次写完代码程序并能够正常运行的概率很小很小,总会有各种各样的错误bug需要处理。有的报错简单,看看报错信息简单修改一下就可以了。

但是有的报错很复杂,特别是一些复杂长代码,需要我们到错误的位置,需要判断是什么变量出现了问题,因此我们除了会写代码之外,还需要会解决常见的错误,那么具体有哪些处理错误的方法呢,具体简单介绍以下几块内容:

1

异常处理

基本语法:

try:
  #要运行别的代码
except :
  #如果在try部份引发了'xxxError'异常就会执行这一步语句
except ,:
  #如果上一个except语句引发了'xxxError'异常,获得附加的数据,并执行这一部分的语句
else:
  #如果没有出现异常要执行的代码
finally:
  #无论发生异常与否,最终都要执行的代码

比如:

try:
  print('执行try部分语句:')
  i = input('输入一个除数:')
  result = 10 / i
  print('result:', result)
except ZeroDivisionError:
  print("除数不能为0")
else:
  print("成功输出结果")
finally:
  print("无论发生异常与否,我都会在这里")

当然这里的except后面可以省略错误名称,但是不建议。省略就意味着只要有错误就执行这一部分代码,比如我在这里输入一个字母a,明明错误应该是除数不能为字符串,这里仍然说除数不能为0是不是就不正确了,所以尽量写出错误的名称

在这个语法中,try是核心成员,意思是不能没有try,其他的内容都可以或多或少的省略掉,比如try-except,try-finally等。

2

debug调试

调试有很多种方法,这里列出主要的几种方法:

1.用print语句

用print()语句把可能有问题的每一个过程都进行输出,就像上面异常处理当中的一样,这种方法简单粗暴,但是在处理完所有的错误之后运行可能会有很多的无用信息,所以最终还要回来删掉这些print语句,于是有了下面的方法。

2.断言(assert)

在这里“断言”是一种程序设计的专业术语,是一种放在程序中的一阶逻辑(如一个结果为真或是假的逻辑判断式),目的是为了标示与验证程序开发者预期的结果。凡是用print()来辅助查看的地方都可以用断言(assert)来进行替代。

但是在程序中如果导出都是assert也并没有比print()好到哪里去,不过可以通过社吹Python解释的-o参数来启用或停用assert。

3.logging

把print()替换成logging是第三种方式,和assert比,logging不会抛出错误,而且还可以输出到文件中形成一个日志文件

logging的好处是,在运行代码中不会抛出错误,而是把错误输出到文件中,还可以指定记录信息的级别,有debug、info、warning、error等,且只会有一个生效

4.pdb

第四种方式是启动Python的调试器pdb,让程序以单步方式运行,可以随时查看运行的状态,就像使用jupyter notebook来一行一行运行代码一样,但是jupyter notebook的功能会更强大一些

5.IDE

利用一些支持调试功能的IDE工具来进行调试,比如VS code,PyCharm等

6.jupyter notebook

最喜欢的方式就是使用jupyter notebook来进行调试代码,可以自己设置一次运行多少行代码,能够准确定位到具体的错误位置,也是非常推荐的一个方式来进行代码的调试。

最后,代码调试是一个非常需要耐心的过程,也是体现学习程度的一个很重要的技能,希望大家能够好好掌握~

参考文章:https://www.liaoxuefeng.com/wiki/1016959663602400/1017602696742912

END -

本文为中国统计网社区产出内容,未经允许禁止转载


赠书活动中奖名单如下:

请未联系【小数】发送邮寄信息的读者,尽快联系我们!

708496dceaaa1f35c7e24f4b9f6d7dee.png

6d6f57cda08648722a141cb9b67db970.gif

d7826944d65b8fe8e3c5c057d1934d52.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...

本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法。分享给大家供大家参考。具体如下:功能代码如下:import os, string, shutil,reimport pefileimport codecs, sysimport wximport struct#输出中打印Unicode字符#sys.stdout co…

mac mysql prefpane_【MySQL数据库开发之一】Mac下配置安装数据库-MySQL

本站文章均为那么从今天开始陆续会更新数据库和Hibernate框架的博文,也是Himi学习的历程记录,希望大家能共同讨论和研究;OK,本篇简单介绍安装吧,首先到MySQL官方网站:如上图:点击DOWNLOAD &…

系统新模块增加需要哪些步骤_想要吸引人流,儿童乐园需要增加哪些新设备呢...

儿童乐园是现今最火爆的一个投资项目,因为它的主要消费群体是孩子,而现在的家长们对孩子们的宠爱,基本都会答应让孩子们去儿童乐园里面玩耍。但是儿童乐园的投资经营者也会遇见一些小问题,例如儿童乐园添加设备要怎么选择呢&#…

php mysql 图像_php-向/从MySQL数据库插入/查看图像

我在DB中插入图像时遇到问题.该表具有以下结构:> id-> INT(3)->自动增量>名称-> VARCHAR(30)> extension-> VARCHAR(10)[可能太短]> img-> MEDIUMBLOB插入图像的PHP代码为:if($_FILES[file][error]0){$result is_uploaded_f…

照片打印预览正常打印空白_小米发布口袋照片打印机,可无墨打印3寸背胶照片...

9月11日消息,小米推出一款小米口袋照片打印机。与之前的小米米家照片打印机相比,这款新品更加小巧便携,体积接近充电宝大小,净重仅181g,便于随身携带。小米口袋照片打印机采用ZINK无墨技术打印,即使用嵌入纸…

c中获取python控制台输出_在真实的tim中用C捕获控制台python打印

我正在尝试从C创建一个python进程,并从python脚本获取打印结果。在这就是我的C代码:namespace ConsoleApp1{public class CreateProcess{public String PythonPath { get; set; }public String FilePath { get; set; }public String Arguments { get; se…

python三大编程语言_程序员最需要的三种编程语言

随着科学技术的进步和新技术的进步,编程语言的种类越来越多,变化是程序员需要跟踪和学习许多语言 然而,有太多的语言无法一一掌握 在目前的形式中,最需要掌握的三种编程语言是 现在判断还不晚 坦白说,找工作很容易 它可…

MySQL优化调优有没有做过_MySQL 调优/优化的 100 个建议

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供 101 条优化 MySQL 的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。MySQL监控MySQL服务器硬件和OS(操作系统)调优&…

python语句print(type([1、2、3、4))_Python 学习第一天

一、学习内容1.print:表示输出print (“hello world”)单行注释:#多行注释:“““ ”””2.运算符注意:才表示等于,!表示不等于3.位运算符~按位取反:~104.变量和赋值teacher“老马的…

mysql核心参数_MySQL技术体系之核心参数

本文主要基于MySQL 5.7版本的数据库环境,总结my.cnf文件中核心参数的配置使用,让更多的人对MySQL技术体系有更全面、更专业的深度了解。一、客户端核心参数1、port端口号,默认33062、socketSocket文件地址,默认以.sock为文件名称后…

svd降维 python案例_SVD(奇异值分解)Python实现

注: 在《SVD(异值分解)小结 》中分享了SVD原理,但其中只是利用了numpy.linalg.svd函数应用了它,并没有提到如何自己编写代码实现它,在这里,我再分享一下如何自已写一个SVD函数。但是这里会利用到SVD的原理,…

salt 启动mysql_saltsack自动化配置day03:服务部署mysql部署

一、MySQL集群需求分享1、抽象:功能模块把基础的写成通用服务部署也要抽象出来模块redis内存有的多,有的少,可以config set在线更改redis 安装、配置、启动mysql 安装、配置(my.cnf可以统一 目录默认配置可以统一)master: server_id 1111slav…

jtag引脚定义_从逆向分析的角度学习硬件调试技巧JTAG,SSD和固件提取

我想从逆向的角度做了深入了解JTAG,JTAG是许多嵌入式CPU使用的硬件级别调试机制,我希望通过这篇文章从逆向工程师的角度解释如何使用JTAG,并在此过程中提供一些实际示例。0x01 研究目标通过这篇文章,我希望做到以下几点&#xff1…

python virtualenv conda_在vscode中启动conda虚拟环境的思路详解

问题:cudatoolkit cudnn 通过conda 虚拟环境安装,先前已经使用virtualenv安装tf,需要在conda虚拟环境中启动外部python虚拟环境思路:conda prompt即将 [虚拟环境位置] 以参数形式传入 [activate.bat]VSOCDE中的设置添加以下语句{&…

python如何导入图片imread_OpenCV 使用imread()函数读取图片的六种正确姿势

经常看到有人在网上询问关于imread()函数读取图片失败的问题。今天心血来潮,经过实验,总结出imread()调用的四种正确姿势。通常我要获取一张图片的绝对路径是这样做的:在图片上右键——属性——安全——对象名称。然后复制对象名称就得到了图…

python2.7与3.7脚本转换_python 2.7 - python 3.7 升级记录

更换的模块python 3.7 模块名python 2.7 模块名python 3.7 包python 2.7包pymysqlMySQLdbPyMySQLMySQL-pythonpdfminerpdfminerpdfminer.sixpdfminerurllib.parseurlparse自带自带htmlHTMLParser自带HTMLparser语法变化1. print 修改为 print()2. except Exception, e 修改为 e…

远程过程调用失败_Java开发大型互联网RPC远程调用服务实现之问题处理方案

引言RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络…

chrome 新的session 设置_为什么还是由这么多人搞不懂Cookie、Session、Token?

作者:不学无数的程序员链接:https://urlify.cn/Yfm6Vr# Cookie洛:大爷,楼上322住的是马冬梅家吧? 大爷:马都什么? 夏洛:马冬梅。 7大爷:什么都没啊? 夏洛…

mysql for update用处_for update的作用和用法

一、for update定义for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行&…

python大数据零基础_零基础学习大数据人工智能,学习路线篇!

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了语言排行第一名。从学习难易度来看…