中断python程序的快捷键_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 "", 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

:

File "", 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模式

7ea5b9b2f1d4ab782f6d654f25efc839.png

f83b01f69e0907217bcd5bdd97fdb541.png

输入和输出变量

最近的两个输出结果分别保存在_和__变量中

输入的文本保存在_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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

Python程序,可以使用signal模块来处理程序中断信号(例如Ctrl+C)。当程序收到中断信号时,可以执行一些清理操作并优雅地退出程序。 以下是一个简单的示例代码,演示如何使用signal模块处理程序中断信号: ```python import signal import time def signal_handler(signal, frame): print('You pressed Ctrl+C!') # 在此处执行清理操作 exit(0) signal.signal(signal.SIGINT, signal_handler) # 模拟程序运行 while True: print('Press Ctrl+C to interrupt...') time.sleep(1) ``` 在上述代码,我们定义了一个signal_handler函数作为信号处理程序。当程序接收到SIGINT信号(即Ctrl+C)时,signal_handler函数将被调用。在该函数,我们可以执行一些清理操作并使用exit()函数退出程序。 我们使用signal.signal()函数将SIGINT信号绑定到signal_handler函数。因此,当程序接收到SIGINT信号时,signal_handler函数将被调用。 在主程序,我们使用while循环模拟程序的运行。在每个迭代,我们打印一条消息并使用time.sleep()函数等待1秒钟。这使得程序保持运行状态,直到接收到中断信号。 当你运行上述代码时,你可以按下Ctrl+C来发送SIGINT信号。当程序接收到信号时,signal_handler函数将被调用,并打印一条消息。然后,程序执行清理操作并退出。 这是一个处理程序中断信号的简单示例,你可以根据你的需要进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值