From: http://learnpythonthehardway.org/book

Comment with line comment:  Ctrl + slash

Run:  Shift + F10

Next Break Point:  F9

Run code partially in Console:  Right Click +  Execute Selection in Console

English Learning:

+ plus
- minus
/ slash
* asterisk
% percent
< less-than
> greater-than
<= less-than-equal
>= greater-than-equal

Link: https://www.jetbrains.com/help/pycharm/2016.1/settings-preferences-dialog.html

Link: http://blog.csdn.net/u013088062/article/details/50183789

最全Pycharm教程(1)——定制外观

最全Pycharm教程(2)——代码风格

最全Pycharm教程(3)——代码的调试、运行

最全Pycharm教程(9)——创建并运行一个基本的Python测试程序

(1) Project 的 Configuration Files

(2) How to add Test Class

(3) How to create and run Test Class

(3) Debug - Set Break Points

(4) Debug - Run Break Points

(5) 传统的“控制台模式”,执行“局部代码”


(1) Project 的 Configuration Files

3、什么是Run/Debug模式

  每个需要运行/调试的脚本文件都需要一个特殊的配置文件来指定其脚本名称、所在目录以及其他重要的运行调试信息。Pycharm已经集成了这种配置文件,避免用户手动去创建。

  每次当你单击Run或者Debug按钮时(或者在快捷菜单中执行相同操作),实际上都是将当前的运行/调试配置文件加载到当前的调试模型中。

  如果你仔细观察第一张图片就会发现,在组合框中根本就没有 run/debug的相关信息,知道第二张图片中它们才出现。这就意味着当执行运行/调试命令的时候,Solver脚本的run/debug配置文件才会自动生成,正如现在所显示的这样。

  此时再主工具栏中Run(绿色箭头按钮)和Debug(绿色甲壳虫按钮)两个按钮变得可用:

  同时这两个图标还是半透明,也就意味着他们临时的,即由Pycharm自动创建的。

  OK,单击下拉箭头查看当前的可用命令操作:

  如果你已经设置了多个run/debug配置方案,它们将都会显示在这里下拉列表中,单击选中一个作为当前工程的run/debug配置文件。


(2) How to add Test Class

// 测试块 专门测试相关的类,乃高级操作

6、运行测试程序

  我们这里并不讨论代码测试的重要性,而是探讨Pycharm如何帮助我们完成这一功能。

  7、选择一个测试器

  首先,需要指定一个测试器。单击工具栏的设置按钮,打开Settings/Preferences对话框,然后单击进入Python Intergated Tools页面(可以通过搜索功能找到),默认选择如下:

  在这里我们选择Nosetests,保存并关闭对话框。

  8、创建一个test程序块

  首先我们创建一个test实例。Pycharm提供了一种非常智能的创建测试代码的方法:单击选中类名然后按下Ctrl+Shift+T快捷键,或者在主菜单中选择Navigate → Test,如果test程序已存在,则会直接跳转到对应代码,否则创建它:

  按照系统提示进行操作,Pycharm会显示如下对话框:

  单击OK按钮,查看创建结果:

  此时Pycharm已经自动创建了一个测试类,当然这只是一个类框架,需要我们手动编写测试函数。

  9、运行测试代码

  一切就绪后,右击测试类名,在弹出的快捷菜单中选择运行命令:

  观察运行状态栏中 Test Runner tab的输出结果:


(3) How to create and run Test Class

1、主题

  这里我们着重介绍Pycharm如何帮助我们创建并运行一个基本的测试程序。

至于如何编写具体的测试程序,参见之前的文章。

  2、准备工作

  确认你电脑上已经安装了Python解释器,2.4到3.3的版本均可。

  3、创建一个简单的Python工程

  在主菜单中,选择File | New Project 

  在创建工程对话框中,输入工程名称(这里暂定为TestSamples),选择工程类型(这里选择一个空的工程),并指定Python解释器版本:

  单击OK,选择显示工程所需窗口,这里我们选择第一个选项——在一个独立的新窗口打开我们的工程:

  4、创建一个Python类

  按下Alt+Insert,选择Python file:

  在新建Python对话框中,输入文件名称:

  可以看到新建的Python文件中已经定义好了__author __以及__project__变量,接下来我们创建一个简单的脚本来实现解二次方程的功能:

  5、创建测试程序

  右击类名,在快捷菜单中选择Go to | Test(也可以直接按Ctrl+Shift+T):

      在Create test对话框中,输入文件路径,以及类名称,勾选复选框中的Test_demo函数选项:

      

      结果如下 :

      

      如你所见,所创建的测试程序满足Python unit testing framework标准 —— 即:从unittest模块中导入相应的测试类,并将测试函数名称加上 “test”前缀。

      然而,目前的测试单元只是一个基本的框架,需要进行修改。首先导入相关模块:

      

      在输入时建议使用拼写提示功能,通过Ctrl+Space组合键,Pycharm将给出合适的模块及类名称提示:

      

      如果import声明的语句显示为灰色,则说明当前导入的模块还没有被使用。

      此时已导入两个测试相关模块:    

from unittest import TestCase
from Solver import Solver

    接下来我们创建一个函数用来抛出判别式为负数的异常,向test类中加入以下代码:

      

      测试单元的最终代码如下:

      

      我们的测试方案包含两个测试方法:test_negative_discr and test_demo,当然后者通常不会被执行。

      注意此时的import语句已经不再变灰色,因为我们已经在test_negative_discr函数中用到了Solver类。

    6、创建测试方案的其他方法

      让我们尝试其他方法来创建测试方案。

      按下Alt+Insert组合键,在弹出的菜单中选择Python file

      接下来在New Python file对话框Kind中选择Python unit test选项,

      然后键入测试方案名称:

      

      此时Pycharm会创建并初始化一个解决方案程序,打开并编辑它:

      

      和之前的步骤类似,最终的测试代码为:

      

    7、运行测试单元

      为了执行我们的测试单元,Pycharm建议使用一个新的配置文件 run/debug configuration,这个配置模板已经是预先定义好的,我们直接使用即可。

      按下Ctrl+Shift+F10,或者在类内右击,选择Run unittests in test_solver

      运行结果如下:

      


(4) Debug - Set Break Points

12、设置断点

  方法非常简单,单击代码左侧的空白灰色槽即可:

  注意断点会将对应的代码行标记为红色,这种颜色标记目前还不能被用户所更改,我们会尽

快出台解决方案。

  顺便说一句,取消断点的操作也很简单,在同样位置再次单击即可。

  当你将鼠标指针悬停在断点上方时,Pycharm会显示断点的关键信息,行号以及脚本属性,如果你希望更改该断点的属性,右击断点:

  可以尝试对断点属性进行个性化更改,然后观察图标的变化。

  这个 Condition 看起来高大上的样子,什么时候用?怎么搞?


(5) Debug - Run Break Points

13、代码调试

  接下来,我们正式开始对代码进行调试。

  首先从配置文件组框中选择同名的'Solver'文件作为当前调试的配置文件,然后单击调试按钮(绿色甲壳虫样式的按钮):

  接下来会Pycharm会执行以下操作:

  (1)PyCharm 开始运行,并在断点处暂停

  (2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。

  (3)Debug tool window 窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。

  虽然Pycharm使用手册中已经完整提供了调试窗口中所有控件的功能信息,我们这里仍然对其进行简要介绍。我们发现窗口分为两个选项卡:Debugger tab and the Console tab。

  (1)Debugger窗口分为三个可见区域:FramesVariables, 和 Watches。这些窗口列出了当前的框架、运行的进程,方便用户查看程序空间中变量的状态等。当你选择一个框架,就会显示出相关的变量信息,当然这些区域都是可以折叠隐藏的。

  (2)Console窗口显示当前的控制台输出信息,默认这个窗口位于Debugger之下,可以通过单击其标签将其前置显示。

  当然我们可以改变这些窗口的摆放位置,如果你不喜欢程序的默认排版的话。具体参加Moving tabs and areas章节。

  Debugger窗口 的工作模式:

  OK,现在程序暂停在了第一断点处,Frames窗口显示的是Solver脚本的第7行代码所对应的进程demo,相关变量a、b、c已经定义,但变量d尚未进行定义。接下来?

  按下F9(或者左侧工具栏的绿色箭头),程序会继续运行到下一断点处,通过这种方式你可以将每个断点都运行一遍,观察变量的变化。

  更多有关 Debugger窗口的信息参见软件手册:product documentation

  Console窗口 的工作模式:

  为什么需要用到Console窗口呢?当我们需要查看程序给出的错误信息,或者进行一些额外的临时运算时,就需要在这个窗口里面进行。

  单击Console选项卡使其前置:

  然后单击左侧工具栏中的命令符按钮,显示Python的命令提示符:

// 已变为 “Show Python prompt”

  此时激活了控制台机制,尝试在其中执行一些Python命令:

  注意到控制台窗口提供了代码的拼写提示(Ctrl+Space)以及历史记忆(Up/Down keys)功能,更多信息参见: Using Debug Console

  // 貌似提供了很灵活的方式,以后可以多了解了解

  最后,如果你希望Console窗口一直处于可用状态,只需将其移动成为一个单独的窗口即可:


(6) 传统的“控制台模式”,执行“局部代码”

15、REPL——在控制台界面调试程序  

最后,如果你更习惯工作于控制台环境下,也可以将Pycharm设置成为控制台模式。在主菜单中选择Tools → Run Python Console...来加载控制台:

  此时console窗口将会被激活,并显示为一个单独的窗口:

// 极其类似ipython的交互模式

  

  在这个控制台窗口中我们可以做很多有意思的事情,接下来我们演示如何将最近编写的Solver.py文件中的代码导入到控制台:

  打开Solver.py文件(打开的方法多种多样,例如Ctrl+E - View → Recent Files),全选文件中的代码内容(Ctrl+A, or Edit → Select All),

  然后按下Alt+Shift+E(或者Right Click击在弹出的快捷菜单中选择Execute Selection in Console):

  // NB之功能!

  此时,Pycharm就会自动将选中的代码导入到控制台界面,方便我们对其进行编辑:

[Python] Basic operations in Pycharm的更多相关文章

  1. 【转载】Python 最强编辑器PyCharm详细使用指南!

    PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm 安装到插件.外部工具.专业版功能等进行了一一介绍,希望能够帮助到大家.机 ...

  2. python笔记:#003#PyCharm 的初始设置

    PyCharm 的初始设置(知道) 目标 恢复 PyCharm 的初始设置 第一次启动 PyCharm 新建一个 Python 项目 设置 PyCharm 的字体显示 PyCharm 的升级以及其他 ...

  3. odoo开发环境搭建(四):python开发工具IDE pycharm配置

    odoo开发环境搭建(四):python开发工具IDE pycharm配置

  4. Python环境搭建和pycharm安装

    Python环境搭建和pycharm安装 本人安装环境为Windows10系统,下载的Python版本为3.4社区版本,可参考 1.下载Python3.4版本 官网:https://www.pytho ...

  5. python 基础 1.3 使用pycharm给python传递参数及pycharm调试模式

    一.通过pycharm 给python传递函数 1. 在pycharm终端中写入要获取的参数,进行获取 1>启动pycharm 中Terminal(终端) 窗口 点击pycharm左下角的图标, ...

  6. 2、Python的IDE之PyCharm的使用

    一.Python集成开发环境-Pycharm介绍 PyCharm是一款功能强大的,用于编写复杂需要结构化的功能代码,下面介绍一下 在Windows下如何安装PyCharm . 操作系统:Windows ...

  7. Python和Anoconda和Pycharm联合使用教程

    简介 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. ...

  8. Python的IDE之Pycharm的使用

    Python的IDE之Pycharm的使用 一.为什么用IDE(Python集成开发环境-Pycharm) 到现在为止,我们也是写过代码的人啦,但你有没有发现,每次写代码要新建文件.写完保存时还要选择 ...

  9. Python学习之路——pycharm的第一个项目

    Python学习之路——pycharm的第一个项目 简介: 上文中已经介绍如何安装Pycharm已经环境变量的配置.现在软件已经安装成功,现在就开始动手做第一个Python项目.第一个“Hello W ...

随机推荐

  1. OpenCV Linux 安装 Make出错

    执行完CMake之后再执行make时遇到以下错误 [ %] Generating precomp.hpp.gch/opencv_core_Release.gch In file included /b ...

  2. 一步一步写miscdevice的驱动模块

    (本文使用的平台为友善tiny210SDKv2) 对于linux的驱动程序来说,主要分为三种:miscdevice.platform_device.platform_driver . 这三个结构体关系 ...

  3. inotify-tools使用方法介绍

    原文 inotify-tools 是为linux下inotify文件监控工具提供的一套c的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件. inotify-tool ...

  4. android: SharedPreferences实现记住密码功能

    既然是实现记住密码的功能,那么我们就不需要从头去写了,因为在上一章中的最佳实 践部分已经编写过一个登录界面了,有可以重用的代码为什么不用呢?那就首先打开 BroadcastBestPractice 项 ...

  5. MS SQL SERVER索引优化相关查询

        查找缺失索引 -- =============================================   -- Description: 查询当前数据库中缺失的索引,知道你进行优化的 ...

  6. Docker实践(4)—network namespace与veth pair

    network namespace 创建network namespace # ip netns add blue # ip netns list blue   添加网口到namespace 先创建v ...

  7. hdu 1845

    一看题意就是二分匹配问题,建边是双向的,两个集合都是n个点 这题的图很特殊,每个点都要与三个点相连,在纸上画了六个点的图就感觉此图最大匹配肯定是六,除以2就是原图的匹配了,就感觉这样的图肯定会达到满匹 ...

  8. Python一点注意

    1. pickle pickle模块中的两个主要函数是dump()和load().dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存到给定的文件中.当我们使用load( ...

  9. [知识库分享系列] 四、ASP.NET MVC and Winform

    知识库分享系列: [知识库分享系列] 三.Web(高性能Web站点建设) [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍本篇分享两个知识库节点,分别为“AS ...

  10. 2.C#中通过委托Func消除重复代码

    阅读目录   一:重复的代码 二:C#中通过委托Func消除重复代码 一:重复代码    public class Persion { public string Name { get; set; } ...