• python学习记录_中断正在执行的代码,执行剪切板中的代码,键盘快捷键,魔术命令,输入和输出变量,记录输入和输出变量_


    2018-03-28 00:56:39

    中断正在执行的代码

    无论是%run执行的脚本还是长时间运行的命令
    ctrl + c
    In [1]:
    KeyboardInterrupt

    执行剪切板中的代码

    ctrl-shift-V

    In [1]: def f(x,y,z):
       ...:         return (x + y) / z
       ...: a = 5
       ...: b = 6
       ...: c = 7.5
       ...: 

    %paste,%cpaste魔术函数
    %paste可以承载剪切板中的一切文本,并在shell中以整体形式执行
    %cpaste跟%paste差不多,只不过多了用于粘贴代码的特殊符号

    In [2]: result = f(a, b, c)
    
    In [3]: %paste
    def f(x,y,z):
        return (x + y) / z
    a = 5
    b = 6
    c = 7.5
    
    result = f(a, b, c)
    
    ## -- End pasted text --
    
    In [4]: %cpaste
    Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
    """
    %cpaste在最终执行之前,你想粘贴多少就多少,若你发现粘贴的代码有错,只需按下ctrl+c可终止%cpaste提示符
    """
    :def f(x,y,z):
    :    return (x + y) / z
    :a = 5
    :b = 6
    :c = 7.5
    :
    :result = f(a, b, c)
    :
    :--
    In [8]: %paste
    def f(x,y,z):
        return (x + y) / z
    a = 5
    b = 6
    c = 7.5

    如果你粘贴的是一段缩进代码,就会引发一个IndentationError
    python语言还是很严格的

    result = f(a, b, c)
            y = 8
    ## -- End pasted text --
      File "<ipython-input-8-74e10d8df765>", line 8
        y = 8
        ^
    IndentationError: unexpected indent
    
    
    In [9]: %cpaste
    Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
    :def f(x,y,z):
    :    return (x + y) / z
    :a = 5
    :b = 6
    :c = 7.5
    :
    :result = f(a, b, c)
    :       y = 8
    :<EOF>
      File "<ipython-input-9-74e10d8df765>", line 8
        y = 8
        ^
    IndentationError: unexpected indent

    键盘快捷键

    Ctrl+P或向上 后向搜索命令历史中以当前输入的文本开头的命令
    Ctrl+N或向下 前向搜索命令历史中以当前输入的文本开头的命令
    Ctrl+R 按行读取的反向历史搜索(部分匹配)

    (reverse-i-search)`a': def add_numbers(a, b):
           ...: """
           ...:     Add two numbers together
           ...:     Returns
           ...:     -------
           ...:     the_sum : type of arguments
        """

    Ctrl+Shift+V 从剪切板粘贴文本
    Ctrl+C 中止当前正在执行的代码
    Ctrl+A 将光标移到行首
    Ctrl+E 将光标移到行尾
    Ctrl+K 删除从光标开始至行尾的文本
    Ctrl+U 清除当前的所有文本(与Ctrl+K相反)
    Ctrl+F 将光标向前移到一个字符
    Ctrl+B 将光标向后移到一个字符
    Ctrl+L 清屏

    魔术命令

    In [1]: import numpy as np
       
    In [2]: a = np.random.randn(100,100)
    asd
    In [3]: %timeit np.dot(a,a)
    1000 loops, best of 3: 638 µs per loop

    魔术命令默认可以不带百分号,只要没有定义与其同名的变量即可/
    %automagic打开关闭

    %quickref 显示IPython的快速参考
    %magic 显示所有魔术命令的详细文档
    %debug 从最新的异常跟踪的底部进入交互式调试器
    %hist 打印命令的输入(可选输出)历史
    %pdb 在异常发生后自动进入调试器
    %paste 执行剪贴板中的Python代码
    %cpaste 打开一个特殊提示符以便手工粘贴待执行的Python代码
    %reset 删除interactive命名空间中的全部变量/名称
    %page OBJECT 通过分页器打印输出OBJECT
    %run script.py 在IPython中执行一个Python脚本文件
    %prun statement 通过cProfile执行statement,并打印分析器的输出结果
    %time statement 报告statement的执行时间
    %timeit statement 多次执行statement以计算系综平均执行时间。对那些执行时 间非常小的代码很有用
    %who、%who_ls、%whos 显示interactive命名空间中定义的变量,信息级别/冗余度可变
    %xdel variable 删除variable,并尝试清除其在IPython中的对象上的一切引用

    matplotlib集成与pylab模式

    输入和输出变量

    最近的两个输出结果分别保存在_和__变量中
    输入的文本保存在_ix变量中,其中x是输入行的行号

    In [1]: 2 ** 3
    Out[1]: 8
    
    In [2]: _
    Out[2]: 8
    
    In [3]: __
    Out[3]: 8
    
    In [4]: foo = 'bar'
    
    In [5]: foo
    Out[5]: 'bar'
    
    In [6]: _i5
    Out[6]: u'foo'
    
    In [7]: _5
    Out[7]: 'bar'
    
    In [8]: exec _5

    记录输入和输出变量

    %logstart 即可开始记录日志
    如果在写代码的过程中,突然想要保存所有工作时,直接启动日志功能就好啦

    In [11]: %logstart
    Activating auto-logging. Current session state plus future input saved.
    Filename       : ipython_log.py
    Mode           : rotate
    Output logging : False
    Raw input log  : False
    Timestamping   : False
    State          : active
  • 相关阅读:
    零侵入性:循环重试功能
    Service有多个实现类,它怎么知道该注入哪个ServiceImpl类
    消息队列经典
    MyBatisplus
    图片存储服务器上
    Spring Boot 保护敏感配置的 4 种方法
    微服务组件
    Optional 实例
    date s 更改时间后不生效
    java运行时 报错 Error: Could not find or load main class test
  • 原文地址:https://www.cnblogs.com/zhenggaoxiong/p/8661413.html
Copyright © 2020-2023  润新知