从零开始的Python计划#6.1【程序调试】


🌟🌟🌟很久没更新啦!有被老师布置的烧脑实践困住了hh,如果有人也想要练习的话,可以私聊我发给你www
这章我们将讨论调试,如何确保能够更好地理解程序中的问题,以及如何在问题发生时修复它们。
我们可以把问题分为三个部分:(1) 语法错误(在写代码时犯的错误),检查代码错误,看到错误和问题在哪儿的同时修复编译错误。 (2) 运行错误,理解运行时错误并理解Python提供给我们的异常跟踪,Python说得很清楚,但有时候我们需要非常小心才能弄清楚问题是从哪里来的,我们怎样才能回到那个地方,确保那里的代码按照我们想要的方式运行。 (3) 逻辑错误,关于结构,计划,测试,断点等,试图了解它们是什么以及如何在我们的开发中发挥作用。还有如何观察变量的行为,观察它们是否按照期望行事,或者是否是它们导致了问题的产生。 用spider提供的IDLE调试器(集成开发和学习环境) (我自己本身是mac用户,然后用的是Anconda-Navigator里面的spider来做python的练习的,所以一样的话可能更好理解)(4) 测试台设计,基本上是一些案例研究,看看如何发现问题,为什么这样做,以及我们如何利用所学的知识来解决代码中的问题。

调试简介

调试意味着识别和修复程序中的错误或bug,有时术语bug也被用来指在其他地方必须被发现和修复的错误,bug(虫子)这个名字可能源于一个硬件错误,这个错误是由格雷斯·霍珀在20世纪40年代发现并拍摄的一台早期计算机的继电器中发现的一只虫子造成的。(这些感觉无关紧要hhh)
总之,软件中的问题称为bug,另一件非常重要的事情是每个程序都有错误,所以不用担心,虫子是正常的,调试是为了让程序变得更好更快的。

错误类型

语法错误
常见的语法错误可能是不正确的缩进、缺少元素、拼写错误等。这类最容易找到,可以通过代码检查或解释器在编译时报告来修好。当我们有语法错误时,编译器会对发生的事情非常详细,并且会显示出第几行发生了什么样的错误。

运行错误
可能在编译时不被注意,只在运行时才显示。这个错误有点难找,因为一开始,如果我们不探索程序在程序中建立的所有路径,我们可能找不到运行时错误。

逻辑错误
这个通常是最难找到的。可以通过观察程序行为来识别。需要花点时间来识别和处理逻辑错误

语法错误

(1)代码检查

当Python解释器试图编译您的程序时,它会发现这些类型的错误,并在不运行任何东西的情况下以错误消息退出;
语法错误是使用Python语言时的错误;(这些就像在命名中使用特殊函数时犯的简单错误一样)
在试图编译之前,最好先对代码进行彻底的视觉检查。
–—检查布局/缩进(Python对布局和缩进非常挑剔,所以在我们的循环和函数里一切都要缩进,并且布局需要清晰易懂。)
–—检查标点符号(标点符号也要注意,函数有冒号:,字典有冒号:,我们可以使用point(.)调用一个方法等等,小心标点符号,这也很关键)
–—检查拼写错误(如果有东西错了,你不知道为什么错,那可能是拼写错误。确保在声明函数或变量时,确定没有拼错)

检查布局/缩进

Python解释器使用缩进标记块的开始和结束;
Python中的一些块控制关键字是def、for、if、else、elif、try、except等。

举个例子:
我们定义一个叫做test的函数,这段代码缩进得很奇怪
Python会不能理解这个程序,总之一团糟
def test():
		for year in [2000,1903,2008,2009]:   #【for循环缩进了两次】
    if(isleap(year)):
       	   isornot="  #缩进了两次
              else:   #应该跟if对齐
    isornot="not "
        print(str(year)+" is "+isornot+"a leap year“)
        
当每次输入块控制关键字时缩进一次的时候,都需要小心

def test():
	
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值