首页 > 编程语言 >python小技巧

python小技巧

时间:2022-09-30 10:04:06浏览次数:52  
标签:shell 技巧 魔术 python 可以 Python np IPython

关于 ipython

1 Tab补全

从外观上,IPython shell和标准的Python解释器只是看起来不同。
IPython shell的 进步之一是具备其它IDE和交互计算分析环境都有的tab补全功能。
在shell中输入表达式,按下Tab,会搜索已输入变量(对象、函数等等)的命名空间

2-1 ?

在变量前后使用问号?,可以显示对象的信息:

In [8]: b = [1, 2, 3] 
In [9]: b? 
Type: list String Form:[1, 2, 3] 
Length: 3 Docstring: list() -> new empty 
list list(iterable) -> new list 
initialized from iterable's items 
In [10]: print? 
Docstring: 
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=Fals e)

Prints the values to a stream, or to sys.stdout by default. 
Optional keyword arguments: 
file: a file-like object (stream); defaults to the current sys. stdout. 
sep: string inserted between values, default a space. 
end: string appended after the last value, default a newline. 
flush: whether to forcibly flush the stream. 
Type: builtin_function_or_method

2-2 ?

?还有一个用途,就是像Unix或Windows命令行一样搜索IPython的命名空间。
字符与通配符结合可以匹配所有的名字。
例如,我们可以获得所有包含load的顶级 NumPy命名空间:

In [13]: np.*load*? 
np.__loader__ 
np.load 
np.loads 
np.loadtxt 
np.pkgload

3 ??

使用??会显示函数的源码:

In [12]: add_numbers?? 
Signature: add_numbers(a, b) 
Source: 
def add_numbers(a, b): 
    """ 
    Add two numbers together 
    Returns 
    ------- 
    the_sum : type of arguments 
    """ 
    return a + b 
File: <ipython-input-9-6a548a216e27> 
Type: function

4 %run

你可以用 %run 命令运行所有的Python程序。
假设有一个文 件 ipython_script_test.py :

def f(x, y, z): 
  return (x + y) / z 

a = 5 
b = 6 
c = 7.5 

result = f(a, b, c)

可以如下运行:

In [14]: %run ipython_script_test.py 

这段脚本运行在空的命名空间(没有import和其它定义的变量),因此结果和普通的运行方式 python script.py 相同。
文件中所有定义的变量(import、函数和全 局变量,除非抛出异常),都可以在IPython shell中随后访问:

In [15]: c 
Out [15]: 7.5 
In [16]: result 
Out[16]: 1.4666666666666666 

如果一个Python脚本需要命令行参数(在 sys.argv 中查找),可以在文件路径之后传递,就像在命令行上运行一样。
笔记:如果想让一个脚本访问IPython已经定义过的变量,可以使 用 %run -i 。

5 Ctrl-C

代码运行时按Ctrl-C,无论是%run或长时间运行命令,都会导致 KeyboardInterrupt 。
这会导致几乎所有Python程序立即停止,除非一些特殊情况。

警告:当Python代码调用了一些编译的扩展模块,按Ctrl-C不一定将执行的程序立即停止。
在这种情况下,你必须等待,直到控制返回Python解释器,或者在更糟糕的情况下强制终止Python进程。

6 从剪贴板执行

在IPython shell中也可以从剪贴板执行。
假设在其它应用中复制了代码。
%paste 可以直接运行剪贴板中的代码。
%cpaste 功能类似,但会给出一条提示。

In [18]: %cpaste 
Pasting code; enter '--' alone on the line to stop or use Ctrl-D .
:

然后可以先粘贴,在最后一行键入'--'运行。
使用 %cpaste ,你可以先粘贴任意多的代码再运行。
你可能想在运行前,先看看代码。
如果粘贴了错误的代码,可以用Ctrl-C中断。

7 键盘快捷键

8 魔术命令

IPython中特殊的命令(Python中没有)被称作“魔术”命令。
这些命令可以使普通任 务更便捷,更容易控制IPython系统。
魔术命令是在指令前添加百分号%前缀。
例如,可以用 %timeit (这个命令后面会详谈)测量任何Python语句,例如矩阵乘法,的执行时间:

In [20]: a = np.random.randn(100, 100) 
In [20]: %timeit np.dot(a, a) 
10000 loops, best of 3: 20.9 µs per loop

魔术命令可以被看做IPython中运行的命令行。
许多魔术命令有“命令行”选项,可以通过?查看

魔术函数默认可以不用百分号,只要没有变量和函数名相同。
这个特点被称为“自动魔术”,可以用 %automagic 打开或关闭。

一些魔术函数与Python函数很像,它的结果可以赋值给一个变量.

IPython的文档可以在shell中打开,我建议你用 %quickref 或 %magic 学习下所有特殊命令。

9 集成Matplotlib

IPython在分析计算领域能够流行的原因之一是它非常好的集成了数据可视化和其它用户界面库,比如matplotlib。
%matplotlib 魔术函数配置了IPython shell和Jupyter notebook中的 matplotlib。
这点很重要,其它创建的图不会出现(notebook)或获取session的控 制,直到结束(shell)。
在IPython shell中,运行 %matplotlib 可以进行设置,可以创建多个绘图窗口, 而不会干扰控制台session:

In [26]: %matplotlib 
Using matplotlib backend: Qt4Agg 

在JUpyter中,命令有所不同:

标签:shell,技巧,魔术,python,可以,Python,np,IPython
From: https://www.cnblogs.com/hs3434/p/16743895.html

相关文章

  • Python 环境管理
    Python环境管理Python版本、虚拟环境、依赖、包管理曾几何时,开发人员的笔记本电脑上只有一个Python版本和一个Python环境,一切运行良好。直到有一天,您需要处理多个项......
  • python 浮点数计算
    FloatingPointMath先贴个代码,有空再写:importdecimalimportfractions#2017096.82/10000print(f"2017096.82/10000=>{2017096.82/10000}")ori=frac......
  • 编码技巧 6
    编码技巧6不确定您是否会使用它,但以防万一您遇到想要借助脚本检查特定字段的依赖字段的情况,您可以使用以下脚本:vargtd=newGlideTableDescriptor('事件');vared=......
  • Python实现列表中嵌套字典按照给定key值去重
    需求:对下列数据按任意字段去重需要达到的效果:按照id进行去重,id重复则算重复。重复的取第一个数据。按照name和tel去重,name和tel都重复则算重复。重复的取第一个数据。......
  • Python 创建虚拟环境 Error: Command returned non-zero exit status 101.
    问题:Python创建虚拟环境Error:Commandreturnednon-zeroexitstatus101.试错:1.将python卸载,重新为所有user安装,无效2.将pip进行更新,pipinstall--upgradepip,无......
  • Python学习笔记5(循环2)
    problem1编写一个程序把输入整数颠倒后存入另一个变量并输出。例如:输入\(1230\),输出\(321\)输入样例:12345输出样例:54321解题思路:就把元组里面元素反转就好了,循环......
  • 借用python的flask库写一个mock实现一个自定义接口服务
    mock在接口测试中可以发挥很大的作用,其中之一便是实现自定义接口服务。python中可以使用flask库实现mock,写一个简单的登录接口,以及调用,直接上代码:第一部分:实现登录接口im......
  • Python实验报告——第4章 序列的应用
    实验报告实例01:输出每日一贴代码如下:importdatetime#导入日期时间类#定义一个时间表mot=['今天星期一:\n坚持下去不是因为我很强,而是因为我别无选择。',......
  • Python第四章实验
    importdatetime#导入日期时间类#定义一个列表mot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。","今天星期二:\n含泪播种......
  • Effective Python pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1EsEfj690uy-s5LrkVYyIIQ点击这里获取提取码 ......