博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IPython: 超越普通Python(1)
阅读量:5354 次
发布时间:2019-06-15

本文共 3316 字,大约阅读时间需要 11 分钟。

知道答案并不重要,重要的是如何在不知道答案的情况下快速找到解决问题的方法。

一、在IPython中访问帮助文档 —— ? 和 help()函数

每一个Python对象都会包含一段doc string文字,大多数情况下这段文字会包含一个简短的对象概览和怎么使用这个对象的描述。Python有一个内建函数 help() 可以获得这段文字信息并输出。

  • 查看内建函数的帮助文档
    ipythonIn [1]: help(len)Help on built-in function len in module builtins:len(...)    len(object) -> integer    Return the number of items of a sequence or mapping.
    ipythonIn [2]: len?Type:        builtin_function_or_methodString form: 
    Namespace: Python builtinDocstring:len(object) -> integerReturn the number of items of a sequence or mapping.
  • 查看某个对象的某个方法的帮助文档
    ipythonIn [3]: L = [1, 2, 3]In [4]: L.insert?Type:        builtin_function_or_methodString form: 
    Docstring: L.insert(index, object) -- insert object before index
  • 查看对象本身的帮助文档
    ipythonIn [5]: L?Type:        listString form: [1, 2, 3]Length:      3Docstring:list() -> new empty listlist(iterable) -> new list initialized from iterable's items
  • 查看自定义函数的帮助文档
    ipythonIn [6]: def square(a):  ....:     """Return the square of a."""  ....:     return a ** 2  ....:In [7]: square?Type:        functionString form: 
    Definition: square(a)Docstring: Return the square of a.
  • ?几乎可以作用于任何对象
  • 自定义函数时记得写doc string

二、在IPython中访问源代码 —— ??

ipythonIn [8]: square??Type:        functionString form: 
Definition: square(a)Source:def square(a): "Return the square of a" return a ** 2
  • 有时候你会发现 ?? 并不能访问到源代码,那通常是因为??的对象并不是由Python代码实现的,而是由C或者其他便编译扩展的语言实现的。这种情况下??和?给出的结果是一样的。(这种情况通常出现在Python的内建对象上)

三、使用Tab键进行探索

  • Tab键补全对象可使用的属性、方法
    ipythonIn [10]: L.
    L.append L.copy L.extend L.insert L.remove L.sort L.clear L.count L.index L.pop L.reverseIn [10]: L.c
    L.clear L.copy L.count In [10]: L.co
    L.copy L.count

    注:私有方法不会在表中列出,因为私有方法通常以__开头作为方法名,需要显式使用_将它显示出来。

  • 在import引入模块或模块内的对象时使用Tab键补全
    In [10]: from itertools import co
    combinations compresscombinations_with_replacement countIn [10]: import
    Display all 399 possibilities? (y or n)Crypto dis py_compileCython distutils pyclbr... ... ...difflib pwd zmqIn [10]: import h
    hashlib hmac http heapq html husl

     

  • 通配符匹配 —— *
    ipythonIn [10]: *Warning?BytesWarning                  RuntimeWarningDeprecationWarning            SyntaxWarningFutureWarning                 UnicodeWarningImportWarning                 UserWarningPendingDeprecationWarning     WarningResourceWarningIn [10]: str.*find*?str.findstr.rfind

    注:之前的补全都是在我们知道我们要找的对象或属性的前几个字母时使用的,如果我们只知道中间的字母,或者最后的字母该怎么办呢?可以使用*这个符号。*可以匹配任何字符串,包括空字符。

四、快捷键

  • 导航快捷键
    Ctrl-a    #光标移至当前行首Ctrl-e    #光标移至当前行末Ctrl-b / 左箭头    #光标向左移一个字符Ctrl-f /  右箭头    #光标向右移一个字符
  • 文本输入快捷键
    Backspace键    #删除当前行光标所在处之前的字符Ctrl-d    #删除当前行光标所在处之后的字符Ctrl-k    #剪切当前光标所在处至行末之间的字符Ctrl-u    #剪切当前行首至光标所在处之间的字符Ctrl-y    #粘贴之前剪切的文本Ctrl-t    #切换之前的两个字符
  • 命令历史快捷键(不仅限于当前的session)
    Ctrl-p / 上箭头    #获取上一条命令Ctrl-n / 下箭头    #获取下一条命令Ctrl-r    #通过命令历史进行反向搜索
  • 其他快捷键
    Ctrl-l    #清空当前终端屏幕Ctrl-c    #中止当前Python命令Ctrl-d    #退出当前的IPython session

     

转载于:https://www.cnblogs.com/steacyMAR/p/9177152.html

你可能感兴趣的文章
洛谷 P1991 无线通讯网
查看>>
Codeforces Round #178 (Div. 2) B. Shaass and Bookshelf 【动态规划】0-1背包
查看>>
SparkStreaming 源码分析
查看>>
【算法】—— 随机音乐的播放算法
查看>>
mysql asyn 示例
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
使用iperf测试网络性能
查看>>
图片的显示隐藏(两张图片,默认的时候显示第一张,点击的时候显示另一张)...
查看>>
Docker 安装MySQL5.7(三)
查看>>
python 模块 来了 (调包侠 修炼手册一)
查看>>
关于CSS的使用方式
查看>>
分析语句执行步骤并对排出耗时比较多的语句
查看>>
原生JS轮播-各种效果的极简实现
查看>>
计数器方法使用?
查看>>
带你全面了解高级 Java 面试中需要掌握的 JVM 知识点
查看>>
sonar结合jenkins
查看>>
解决VS+QT无法生成moc文件的问题
查看>>
AngularJs练习Demo14自定义服务
查看>>
关于空想X
查看>>