第一章—IPython:超越python(笔记)

命令行输入ipython可打开ipython解释器(Anaconda、EPD的python发行本本身已经携带);命令行输入 jupyter notebook可打开ipython shell基于浏览器的图形界面。

1.每一个python对象都有一个字符串型的引用——docstring,用于保存该对象的简要介绍和使用方法。其内容可用help()函数获取,或者使用ipython shell 独有的?(获取简介和用法)、??(获取python源代码,但如果该对象是使用其他语言编写的则无法获取源代码,此时??与?作用相同)。

2.为自创的函数创建docstring的方法是:在函数定义——def 函数名():之后的一行使用"""docstring内容"""的形式进行。

4.ipython允许使用与linux类似的Tab补全功能:L.xxxTab(这里的Tab指按键)

按照python的惯例,_xxx(即前面带有下划线)表示私有的属性或方法;python私有属性和方法一般使用dunder方法即双下划线法命名

import xxxTab(Tab指按键)也是可以的

from xx import xxTab(Tab表示按键)也是允许的

5.通配符匹配

例:*win,可列出所有以win结尾的对象 ;str.*find*?可找到名称中包含find的字符串方法

6.ipython快捷键

ctrl+a光标移到本行开头

ctrl+e光标移到本行结尾

ctrl+k从光标开始剪切到行末

ctrl+u从行首位开始剪切到光标

ctrl+y将剪切的文本粘帖到光标所在位置

ctrl+t交换前两个字符

通过history可显示历史命令(上下箭头用于获取前/后一个命令)

ctrl+r用于对历史命令的反向搜索

(1)按下ctrl+r,显示(reverse——search),在其后输入字符,将会自动填充与之相近的最近命令,再按一下ctrl+r则匹配次近的一个

(2)def按下ctrl+P,则查找以def开头的最近命令,再按一次,查找次近.....

7.魔法命令——行魔法(以%作前缀),单元魔法(以%%作前缀)

(1)用于粘帖代码块的%paste和%cpaste(用于防止粘帖多行代码块时的缩进、解释符号错误)

      %cpaste:打开一个交互式多行输入提示,从而使用户可在该提示下粘帖并执行代码块(一个或多个)

      %paste:该命令后跟代码块,可直接应用

(2)执行外部代码的%run

    例:%run mysjhdsh.py 则运行mysjhdsh.py程序

        更具体的用法,请使用%run?查看

(3)代码运行时间%timeit

        a计算接下来一行代码的运行时间,接下来一行的意思是,与%timeit同处一个代码块的下一行,而不能先执行%timeit,再输入代码

        b.应用%%timeit(魔法单元),则可以计算接下来一行代码的运行时间

(4)魔法命令?,用于查询魔法命令注释

    %magic用于查看魔法函数的通用描述和一些实例 :%lsmagic用于查看可用魔法函数列表

(5)%history -n 1-4  打印前四条历史命令

  (6)%rerun 重新执行部分历史命令

  (7)%xmode 用于捕获/控制异常,用于轨迹追溯时控制打印信息的数量

(8)%save保存部分历史命令

(9)捕获异常后%debug打开调试界面;%pdb用于控制发现异常时是否自动启动调试器;github.com/gotcha/ipdb可查看调试命令

8.输入输出对象

  ipython中的In,Out其实分别是一个预定义的列表和字典,用于记录所有输入命令/所有(将输入数字映射到的)输出

9._[x]等价于Out[x]

10.行尾加分号——》禁止输出(输出既不显示,也不存入Out路径下,只是默默执行了)

11.可用!作为前缀在ipython执行shell 命令,例如:!pwd  !ls等(备注:!cd并不工作,应使用%cd,因为Notebook中的命令是在shell的分支里进行的)

注意:%automatic可用于设定一些shell魔法函数不需%即可执行

12.可用通过赋值符将shell命令的输入存入一个变量

例:xx=!pwd

13.type(x)查询x的类型

14.代码分析和计时

————过早优化是最大的错误!!!!!!!!

A代码段计时%time;%timeit

B分析整个脚本%prun

C逐行分析%lprun(需要 pip install line_profiler;%load_ext line_profiler)

D内存分析%memit和%mprun(需要memory_profiler包)

15.nbviewer.ipython.org提供了一些ipython实例

16建议浏览ipython主页和(有趣的ipython集合);建议关注ipython主要贡献者Fernando Perez和Brian Granger在PyCon,SciPy,PyData会议中的发言。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容