一份超级完整实用的PyCharm图解教程,赶紧收藏起来( 二 )


现在我们可以开始新的 Python 程序了 。如果你使用的是 Mac 系统,使用 Cmd+N 键;如果你使用的是 windows 或 linux 系统,使用 Alt+Ins 键 。然后选择 Python File 。你也可以在菜单中选择 File → New 。将新文件命名为 guess_game.py 并点击 OK 。你将看到如下 PyCharm 窗口:

一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
至于测试代码,我们来快速写一个简单的猜谜游戏,即程序选择一个数字让用户来猜,在每一次猜测时,程序将告诉用户他猜的数字比神秘数字大还是小,用户猜中数字时游戏结束 。以下是该游戏的代码:
一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
直接键入上述代码,而不是复制粘贴 。你会看到如下画面:
一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
如上图所示,PyCharm 提供 Intelligent Coding Assistance 功能,可以执行代码补全、代码检查、错误高亮显示和快速修复建议 。比如键入 main 并点击 tab 键,PyCharm 会自动补全整个 main 从句 。
此外,如果你在条件句前忘记键入 if,在该句子最后增添.if 并点击 Tab 键,PyCharm 将修复该 if 条件句 。该用法同样适用于 True.while 。这即是 PyCharm 的 Postfix Completion 功能,它可以帮助用户减少退格键使用次数 。
在 PyCharm 中运行代码现在你已经编码完成该游戏,可以运行了 。
该游戏程序有三种运行方式:
1.在 Mac 系统中使用快捷键 Ctrl+Shift+R,在 Windows 或 Linux 系统中,使用快捷键 Ctrl+Shift+F10 。
2.右键单击背景,从菜单中选择「Run 『guess_game』」 。
3.由于该程序具备__main__ 从句,你可以点击__main__ 从句左侧的绿色小箭头,选择「Run 『guess_game』」 。
使用以上任一方式运行该程序,窗口底部会出现终端面板(Terminal pane),显示你的代码输出结果:
一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
你可以玩一下这个游戏,看看自己能否猜中数字 。(专业建议:从 50 开始猜 。)
在 PyCharm 中进行代码 debug找到神秘数字了吗?如果找到了,你可能会看到一些奇怪的东西:程序没有打印出祝贺信息和显示退出按钮,而是重新开始了 。这就是 bug 所在 。要想发现程序重新开始的原因,你需要 debug 。
首先,点击第 8 行代码左侧的空白区域,设置断点:
一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
断点即程序运行到这一行时会自动停止,你可以探索断点处之后的代码有什么错误 。接下来,从以下三种方式中选择一种开始 debug:
1.在 Mac 系统中使用 Ctrl+Shift+D 键,在 Windows 或 Linux 系统中使用 Shift+Alt+F9 键 。
2.右键单击背景,选择「Debug 『guess_game』」 。
3.点击__main__从句左侧的绿色小箭头,选择「Debug 『guess_game』」 。
之后,你将看到底部出现 Debug 窗口:
一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
按照下列步骤执行程序 debug:
1.注意当前行被蓝色高亮显示 。
2.Debug 窗口显示 random_int 及其值 。记录该数字 。(上图中该数字为 85 。)
3.点击 F8 执行当前代码行,并执行到下一行代码 。如有必要,你也可以使用 F7 跳转到当前行内的函数 。随着你继续执行语句,变量的变化将自动呈现在 Debugger 窗口 。
4.注意 Debugger 标签右侧有一个 Console 标签 。Console 标签和 Debugger 标签相互独立 。你可以在 Console 中与程序进行交互,在 Debugger 中执行 debug 动作 。
5.转向 Console 标签,进入猜测过程 。
6.键入左侧 Debugger 标签中显示的数字,点击 Enter 键 。
7.转回 Debugger 标签 。
8.再次点击 F8,计算 if 语句 。注意现在你在第 14 行 。为什么不是第 11 行呢?因为第 10 行的 if 语句被计算为 False 。那么为什么当你键入数字后它算出来为 False 了呢?
9.仔细看第 10 行,注意我们在对比 user_guess 和一个错误的项 。我们应该对比用户猜测的数字和 random_int,但此处我们对比的是 randint(从 random 包导入的函数) 。
10.将 randint 更改为 random_int,按照同样的步骤重新开始 debug 。你会发现,这一次到达的是第 11 行,第 10 行算出来为 True:
一份超级完整实用的PyCharm图解教程,赶紧收藏起来

文章插图
 
恭喜你,bug 被修复了!
在 PyCharm 中进行代码测试不经单元测试的应用都不可靠 。PyCharm 可以帮助你快速舒适地写单元测试并运行 。默认情况下,unittest 被用作测试运行器,而 PyCharm 还支持其他测试框架,如 pytest、nose、doctest、tox 和 trial 。例如,你可以按照以下步骤为项目选择 pytest 测试运行器:


推荐阅读