第2步:调试您的第一个Python应用程序

找出问题的根源

PyCharm报告运行时错误:a ZeroDivisionError。深入研究一下代码,找出问题所在。这里可以使用PyCharm调试器来查看代码中发生了什么。要开始调试,您必须先设置一些断点。要创建断点,只需单击左侧gutter:

接下来,单击左侧gutter中的播放图标,在main旁边,然后选择Debug 'Car'。 PyCharm启动调试会话并显示调试工具窗口。

在Console选项中,输入S:

如您所见,断点标记变为蓝色。这意味着已经达到了断点; 请注意,此时尚未执行突出显示的代码行。

单击播放图标以恢复脚本执行。现在另一个断点也出现了:默认情况下,PyCharm将停止代码中未捕获的任何异常,并且它将显示带闪电的断点图标。

控制台还会显示错误消息。您还可以在调试器中看到该值self.time等于零:

Surrounding code

为避免再次遇到同样的问题,现在添加一个if语句来检查时间是否等于零。为此,在方法average_speed中选择语句return self.odometer / self.time,然后按Ctrl + Alt + T(Code | Surround with):

PyCharm创建一个stub if构造,让你完成填充正确内容的任务。编辑后,得到以下内容:

详细调试

“调试”工具窗口显示框架, 变量和监视的专用窗格以及控制台,其中显示所有输入和输出信息。如果希望控制台始终可见,可以将其拖动到PyCharm窗口的一个边缘。

Stepping

如果您希望逐行查看代码的作用,则无需在每一行上设置断点,您可以单步执行代码。看一下示例程序是什么样子:单击播放图标,转到控制台询问汽车的平均速度(类型'S'),可以看到达到断点。这时可以使用Stepping工具栏按钮选择想要在下一行停止的行。

例如,单击Step Over 按钮并看到蓝色标记移动到下一行代码:

如果单击Step Into按钮,您将看到action = input("What should I do? [A]ccelerate, [B]rake, " "show [O]dometer, or show average [S]peed?").upper() 调试器进入文件parse.py:

但是,如果继续使用Step Over 按钮,您将看到您的应用程序只是传递到下一个循环:

如果您想专注于自己的代码,请使用Step Into My Code按钮 - 这样您就可以避免进入库类。

Watching

PyCharm允许您观察任何变量。只需要单击Watches选项的工具栏中的+,然后输入你想要观看的变量的名称-将其设置为 my_car.time。请注意,此处可以使用代码完成:

首先,您看到时间等于nil - 这意味着该变量尚未定义:

但是,当程序执行继续到定义变量的作用域时,监视器将获得以下视图:

内联调试

您可能已经注意到另一个PyCharm功能,可以轻松查看代码正在执行的操作: 内联调试器。一旦你遇到任何断点,PyCharm就会在编辑器中向你显示许多变量的值:

默认情况下启用此内联调试功能。如果您没有看到内联调试值,请使用调试工具窗口中的设置图标检查它是否已启用::

评估表达式

最后,您可以随时评估任何表达式。

实际上,你可以用watch看到同样的东西。使用评估表达式,您可以执行使用watch无法执行的操作:您可以更改内容。例如,如果输入所需的里程表值50,然后继续单步执行脚本,您将获得以下信息:

概要

找出问题的根源

设置断点

逐步完成您的计划

创建一个 watch

评估一个表达

标签:PythonIDE

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:慧都

21

好文不易,鼓励一下吧!

python怎么一步步调试_PyCharm入门第一步(二)——调试第一个Python应用程序相关推荐

  1. python调试器入门教程_PyCharm入门第一步(二)——调试第一个Python应用|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 第2步:调试您的第一个Python应用程序 找出问题的根源 PyCharm报告运行时错误:a ZeroDi ...

  2. 如何安装python环境_python入门第一步:如何安装Python和搭建Python环境?

    原标题:python入门第一步:如何安装Python和搭建Python环境? 很多想入门Python的小伙伴,在第一步安装Python上就放弃了.从入门到放弃速度之快也是令人吃惊!今天就和大家一起从最 ...

  3. 【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作

    本文是Python实战–从入门到精通系列的第二篇文章: [Python]Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型 Python实战从入门到精通之二 – 教你使用 ...

  4. php网站入门鹿泉银山,01PHP编程新手入门第一步

    01PHP编程新手入门第一步 很多时候刚入手不知道从哪里下手.这个时候选择一些课程是最好的方法,自己摸索半天可能比不过别人5分钟讲解.就编程而言: 1:有个地方存储程序和数据库 可以选择云服务器,也可 ...

  5. Python开发第一步:如何制作一个简单的桌面应用

    Python开发第一步:如何制作一个简单的桌面应用 前言 大家好,我是baifagg, 一个热爱Python的编程爱好者. 今天我们来学习一下, 如何用Python制作一个简单的桌面应用程序. 虽然桌 ...

  6. 树莓派3代Raspberry3 B型小白入门第一步

    树莓派3代Raspberry3 B型小白入门第一步 大家好,好吧!我承认我是菜鸟,昨天才第一天真正接触树莓派,之前都是看别人大神们的一些作品,感觉这个小玩意儿还是很神奇的,前几天就在网上购买了一个树莓 ...

  7. 手把手教你入门第一步!做西瓜头条自媒体,每天稳定收入200多

    很多人想做自媒体却不知道如何开始,今天这期内容就来教大家迈出自媒体的第一步. 记得点赞关注加收藏,不然想找我的时候你就找不到了. 最近一直在分享大周自己做自媒体的一些经验总结,有很多粉丝朋友私信问我, ...

  8. python的起源和发展_Python入门第一课——Python的起源、发展与前景!

    我们在做任何一件事情之前,我们都会通过各种渠道去搜集事情的信息,了解事情的来龙去脉,学习一门编程语言也是如此,只有知根知底,我们才能有明确的方向和目标,以及底气去完成这件事情,今天我带大家来看看Pyt ...

  9. python程序设计入门书籍推荐_python刚刚入门,接下来这几本python的书会让你成为别人眼里的大神!...

    在人工智能如此火热的今天,我们都非常清楚Python的热度一路飙升,身边也是越来越多的人选择学习Python,这门语言目前来说已经成为大量开发者推荐的入门编程语言和第二编程语言,而且Python还是人 ...

最新文章

  1. 题目1183:守形数
  2. 04.ARP:地址解析协议
  3. Solr如何管理索引库
  4. 总体和样本、统计量和抽样分布
  5. 20200118每日一句
  6. Lumion文件结构及Benchmark in progrees问题
  7. Django exclude操作
  8. CATIA 安装Service Pack 时出错 检查完整性失败
  9. XPDL与WS-BPEL的比较之五:形势与未来
  10. sqlserver和mysql定时同步_通过作业,定时同步两个数据库_sqlserver
  11. Pathon安装教程环境配置教程(Pathon2.7和3.7的区别)
  12. 绘制系列(五)-DrawText()详解
  13. 网速监测-window小应用
  14. android 按键 免root,按键精灵免root版
  15. IDM关于某些应用程序阻止了IDM集成到浏览器中
  16. nginx全天候监测大流量可疑ip的封禁脚本
  17. zynq linux如何使用pl ip,ZYNQ+linux网口调试笔记(3)PL-ETH
  18. 新媒体视频智能拆条技术的研究与应用
  19. Mac下mysql忘记密码解决方法
  20. 几款免费的监控服务器对比

热门文章

  1. oracle 系统检查点,检查点(Checkpoint)优化及故障排除指南
  2. idea怎么运行eclipse的web项目_Apache Storm v2.0入门项目的开发、测试和运行(IDEA/Maven)...
  3. 服务器内文件如何修改后缀名,修改服务器配置 让asp.net文件后缀名随心所欲
  4. 小学五年级计算机教学工作总结,小学五年级数学教师工作总结(精选8篇)
  5. esp8266 rtos 开发环境 ubuntu_esp8266/32~资源帖[持续更新]
  6. Oracle 20c 新特性:基础级内存数据库免费功能 In-Memory Base Level
  7. 详述MySQL事务的实现原理
  8. MySQL 分页优化中的 “ INNER JOIN方式优化分页算法 ” 到底在什么情况下会生效?...
  9. 想被千年后的人知道吗,快去GitHub上传代码吧!
  10. 大数据组件运维工具之HBase