介绍一种找bug的方法
总第186篇/张俊红
今天介绍一种找bug的方法,分段执行。这个概念不知道多会进入到我脑海中的,可能是有这么一种专门的叫法。特地去网上查了查,好像并没有,只查到了某地方警察办案在通过推行分段执行来提高效率。
那什么是分段执行呢?就是字面意思,把整体代码分成几段去执行。你应该有过这样的体验,好不容易写了一段特别特别长的代码,或者是收到别人发来一段特别长的代码时,自己一运行就报错。看着那大红色的报错信息陷入了迷茫。代码又这么长,我该如何下手去检查哪里出问题了呢?
这个时候有一个有效的办法就是分段执行。把那段长长的代码中几个关键的部分分开来执行,看哪一段会报错,这样就可以更加精准的定位问题,从而可以快速的解决问题。
比如下面这段Python代码:
int(str(df[df["city_id"] == 1]["Stime"][0])[11:13])
这段代码难吗?好像只有一行,看起来不是特别难。那这段代码简单吗?里面各种嵌套,好像也不是那么容易。我们把这段代码可以拆成以下几部分:
df[df["city_id"] == 1]
运行上面的代码,会把df表中city_id等于1的全部数据取出来。
df[df["city_id"] == 1]["Stime"]
运行上面的代码,会把上面取出来city_id等于1的数据里面的Stime列取出来,结果示例如下:
0 2017-04-05 18:30:39
1 2017-04-05 18:34:00
2 2017-04-05 18:36:51
3 2017-04-05 18:44:24
4 2017-04-05 18:46:38
5 2017-04-05 18:49:50
6 2017-04-05 19:05:26
7 2017-04-05 19:14:13
8 2017-04-05 19:28:36
9 2017-04-05 19:32:46
……
df[df["city_id"] == 1]["Stime"][0]
再运行上面的代码会把Stime列中的第一个值取出来
str(df[df["city_id"] == 1]["Stime"][0])
再运行上面的代码,会把Stime列中的第一个值从时间类型转换为字符串类型
str(df[df["city_id"] == 1]["Stime"][0])[11:13]
再运行上面的这段代码,会把字符串第11:13位置的字符获取出来
int(str(df[df["city_id"] == 1]["Stime"][0])[11:13])
再运行上面的代码,会把取出来的字符串转化为整型。
如果你运行最开始那完整的一整行代码有问题时,你就可以把这一整段代码分成若干个过程去运行,然后看哪个分段有问题,解决完分段执行问题以后,合并到一起就可以完美运行了。
代码如人生哈,当一整段代码出现报错以后我们会去分段执行,看问题出在哪一部分。我们每个人可能都会那么一段不爽的时间,当遇到不爽的时候,我们经常会去回顾过去经历的几个关键节点,看在那些关键节点做了什么,当初做的那些选择和现在有什么关系。
掌握了分段执行,让你能够看到一长段代码报错以外不再慌张,也不需要再去求助别人,自己也可以游刃有余的解决问题。
你还可以看:
Python中的这几种报错你遇到过吗?
介绍一种找bug的方法相关推荐
- 结合Scikit-learn介绍几种常用的特征选择方法
特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减 ...
- python 卡方检验 特征选择_结合Scikit-learn介绍几种常用的特征选择方法
特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减 ...
- (干货)结合Scikit-learn介绍几种常用的特征选择方法
系统版本:window 7 (64bit) python版本:python 3.5 我的GitHub:https://github.com/weepon 写在前面:前段时间正好用到特征选择的知识,有幸 ...
- 干货:结合Scikit-learn介绍几种常用的特征选择方法
原文:http://dataunion.org/14072.html 作者:Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮 ...
- 分享10种找客户的方法
很多小伙伴做项目都苦于流量难搞,今天萃见就跟大家分享10种常见的找客户的方法. 1.熟人引荐 熟人引荐这种就是不要怕麻烦.熟人引荐的好处就是信任度高,只要你的产品质量足够硬,第一时间可以从身边朋友下手 ...
- lasso特征选择python_转:结合Scikit-learn介绍几种常用的特征选择方法-2
4.2 平均精确率减少 Mean decrease accuracy 另一种常用的特征选择方法就是直接度量每个特征对模型精确率的影响.主要思路是打乱每个特征的特征值顺序,并且度量顺序变动对模型的精确率 ...
- 如何人物抠图?介绍三种人物抠图的方法
如何将照片里的人物从照片里抠出来呢?在广告制作. 社交媒体.商品展示.影视制作等场景下,需要将产品图片与人物图片进行组合,这时就需要将人物从原始图片中抠出来,然后放置到广告背景中.今天来介绍三种方法, ...
- html苹果怎么打开pdf文件,苹果手机怎么打开pdf格式的文件(这里介绍三种最实用的方法)...
将Word.PPT转换成PDF文件就能很好地保留原文件格式:或者把Excel文件转换成PDF文件来保存,就能保护里面的数据不被随意改动,因此也就确保了数据的安全性.那么PDF文件该怎么打开浏览呢?如何 ...
- 视频配音文字转语音怎么弄?介绍几种好用的方法给你
相信很多小伙伴在制作视频的时候都会遇到需要配音的问题,当我们不想用自己的声音去配音时,就可以借助一些配音软件来快速把文字转语音.下面我就来告诉你们视频配音制作软件有哪些,如果你们感兴趣的话,快来阅读本 ...
最新文章
- shell 获取 mysql 行数_一个Shell小脚本精准统计Mysql每张表的行数实现
- 实名羡慕,国内这些厂.NET薪资高的吓人!
- 关于CSS的碎片学习
- mybatis传统方式开发DAO
- 微软MVP推荐《软件设计精要与模式(第2版)》
- HTML5 学习准备1
- window7 黑屏
- 关于磁碟机及Javqhc病毒
- STM32F103时钟系统
- igraph入门教程
- 中国首款前装L3自动驾驶卡车发布:一汽解放制造,京东车队运营
- mac删除global protect
- 解决office2003 32位卸载不干净 无法安装office2013 64位在问题
- asp.net Repeater等数据控件模版内部2个DropDownList控件级联
- limit和offset用法
- 人机融合系统的休谟之问到工业智能的成熟应用的联想
- 梆梆安全的金砖梦想:安全联结世界
- kmp总结(相关例题1. Simpsons’ Hidden Talents 2.Oulipo)
- 使用Git将文件上传到暂存区
- 美国经济学教授Tyler Cowen:互联网正在动摇美国私有制根基
热门文章
- java nio长连接实现_kio: kio是基于jdk 1.6 nio实现的TCP长连接即时通讯框架。
- xampp中apache不能启动解决方法 (share)
- Shader学习笔记_函数探索_tex2D(sampler2D tex, float2 s)
- WindowsServer 2008 Ad建立ftp隔离用户
- 正则表达式之零宽断言
- 王力宏《十八般武艺》新碟 测评
- 机房收费系统——需求分析
- 【置顶】方立勋JavaWeb学习地址
- 我是如何学习写一个操作系统(八):内存管理和段页机制
- CSS: hover选择器的使用