目录
一、python基础
1.python解释器
Python是解释性语言。
Python解释器同一时间只能运行一个程序的一条语句。
标准的交互Python 解释器可以在命令行(win
+R
输入cmd
)中通过键入 python
命令打开:
>>>
提示输入代码。
要退出Python解释器返回终端,可以输入 exit()
或按Ctrl
-D
。
2.IPython与Jupyter Notebook
2.1 IPython安装
首先确保电脑已经成功安装了python,输入命令python
,输出结果没有报错,则说明成功安装了Python。
python3.0以上的版本都自带pip,无需重新下载pip。
使用pip 来安装ipython,如下:
可以看到,我们已经成功安装了ipython。
接下来就是启动ipython,cmd打开命令行(Win
+R
),输入ipython
敲回车,结果如下
ipython的安装已经全部完成。
ps:在用ipython学习的过程中,可输入cls 来清屏
2.2运行IPython
可以通过输入代码并按Return
(或Enter
),运行任意Python语句。当你只输入一个变量,它会显示代表的对象:
#前两行是Python代码语句
In [1]: import numpy as np
#创建一个名为 data 的变量
In [2]: data={i:np.random.randn() for i in range(7)}
#打印 data 的值
In [3]: data
Out[3]:
{0: -0.8936139693348262,
1: -0.4495663533918259,
2: 2.464366394715506,
3: 0.4778309323177629,
4: -0.3652574599726849,
5: -1.6117821979763511,
6: -0.4662755036295241}
#许多Python对象被格式化为更易读的形式,或称作 pretty-printed
#如果在标准Python解释器中打印上述 data变量,则可读性要降低:
In [4]: print(data)
{0: -0.8936139693348262, 1: -0.4495663533918259, 2: 2.464366394715506, 3: 0.4778309323177629, 4: -0.3652574599726849, 5: -1.6117821979763511, 6: -0.4662755036295241}
2.3 运行Jupyter Notebook
notebook是Jupyter项目的重要组件之一,它是一个代码、文本(有标记或无标记)、数据可视化 或其它输出的交互式文档。
要启动Jupyter,在命令行中输入 jupyter notebook
即可。
在多数平台上,Jupyter会自动打开默认的浏览器(除非指定了 --no-browser )。或者,可以在启 动notebook之后,手动打开网页 http://localhost:8888/
注:
输入Python代码。然后按Shift
-Enter
即可执行
保存notebook时(File目录下的Save and Checkpoint),会创建一个后缀名为 .ipynb
的文件。
3. Tab的补全功能
从外观上,IPython shell和标准的Python解释器只是看起来不同。
IPython shell的进步之一是具备其它IDE和交互计算分析环境都有的tab补全功能。
(在Jupyter notebook和新版的IPython(5.0及以上),自动补全功能是下拉框的形式。)
(1).在shell中输入表达式,按下Tab,会搜索已输入变量(对象、函数等等)的命名空间。
In [1]: an_apple = 27
In [2]: an_example = 42
In [3]: an<Tab>
(2).可以补全任何对象的方法和属性:
In [3]: b = [1, 2, 3]
In [4]: b.<Tab>
(3).同样也适用于模块:
In [1]: import datetime
In [2]: datetime.<Tab>
(4).当输入看似文件路径时(即使是Python 字符串),按下Tab也可以补全电脑上对应的文件信息:
In [22]: datasets/movielens/<Tab>
(5)tab补全可以补全函数的关键词参数(包括等于号=)
In [25]:def fu_with_keywords(abra=1,abbra=2,abbbra=3):
...: return abra,abbra,abbbra
...:
In [26]: fu_with_keywords(ab<Tab>)
4.自省(?的功能)
(1)在变量前后使用问号?
,可以显示对象的信息(这可以作为对象的自省):
(2)如果对象是一个函数或实例方法,定义过的文档字符串,也会显示出信 息。假设我们写了一个如下的函数:
(3)使用??
会显示函数的源码:
(4)?
还有一个用途,就是像Unix或Windows命令行一样搜索IPython的命名空间。字符与通配符结合可以匹配所有的名字。
例如,我们可以获得所有包含load
的顶级NumPy命名空间:
5.魔术命令
IPython中特殊的命令(Python中没有)被称作“魔术”命令。这些命令可以使普通任务更便捷,更容易控制IPython系统。魔术命令是在指令前添加百分号%前缀。
魔术命令可以被看做IPython中运行的命令行。许多魔术命令有“命令行”选项,可以通过?
查看:
ps: 魔术函数默认可以不用百分号,只要没有变量和函数名相同。这个特点被称为“自动魔术”,可以用 %automagic
打开或关闭。
一些魔术函数与Python函数很像,它的结果可以赋值给一个变量:
可以用 %quickref
或 %magic
学习下所有特殊命令
5.1 %run命令(%load命令)
你可以用%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 C:\Users\my\Desktop\ipython_script_test.py
这段脚本运行在空的命名空间(没有import和其它定义的变量),因此结果和普通的运行方式python script.py
相同。文件中所有定义的变量(import、函数和全局变量,除非抛出异常),都可以在IPython shell中随后访问:
也可以使用 %load
,它将脚本导入到一个代码格中:
In [40]: %load C:\Users\my\Desktop\ipython_script_test.py
#回车即可获得下列输出
In [41]: # %load C:\Users\my\Desktop\ipython_script_test.py
...: def f(x, y, z):
...: ^Ireturn (x + y) / z
...: a = 5
...: b = 6
...: c = 7.5
...: result = f(a, b, c)
5.2 %paste和%cpaste
我们经常会将python文件中的代码粘贴到IPython中执行,以便查看效果,尤其是针对现实图形的代码。这时如果直接拷贝粘贴,IPython可能无法正确的执行,这是因为IPython一旦遇到空行就认为粘贴结束,然后就开始执行了。
例如,我们有如下代码:
你可以将代码复制粘贴到任意代码格执行。假设在其它应用中复制了如下代码:
def add(x, y):
result = x + y
print(result)
add(1, 2)
如果直接拷贝粘贴到IPython当中,就会报错,如下:
这时我们就需要使用%paste
或者%cpaste
来粘贴了,先拷贝代码,然后在IPython中输入%paste
,结果如下:
%cpaste
也可以粘贴代码,与%paste
区别就是它可以持续粘贴(即continue paste),直到我们按Ctrl
+D
或者输入双减号--
以结束粘贴
(提示:注意复制代码的格式,格式一定要标准!!!)
5.3 %matplotlib
(1)在notebook中使用plt绘图共有三种模式:
%matplotlib inline
:这是默认的模式,输出的图片是静态的
%matplotlib auto
:在这个模式下会弹出一个单独 的绘图窗口,和在pycharm中一样
%matplotlib notebook
:在这个模式下会在notebook中产生一个绘图窗口,能够对图片进行放大缩小等操作。
ps: 有时候修改完没有变化,重启notebook就好了
(2)在ipython中使用plt绘图默认的为产生一个绘图窗口,可以直接对图片进行放大缩小等操作
5.4 其他
6.中断运行的代码
代码运行时按Ctrl
-C
,无论是%run
或长时间运行命令,都会导致KeyboardInterrupt
。这会导致几乎所有Python程序立即停止,除非一些特殊情况。
【警告】当Python代码调用了一些编译的扩展模块,按Ctrl
-C
不一定将执行的程序立即停止。 在这种情况下,必须等待,直到控制返回Python解释器,或者在更糟糕的情况下强制终止Python进程。
7.键盘快捷键
(ipython)
Jupyter notebooks有另外一套庞大的快捷键。因为它的快捷键比IPython的变化快,建议你参阅 Jupyter notebook的帮助文档。
参考
1.怎么安装ipython
2.ipython 魔术命令
3.Jupyter Notebook 和绘图有关的几个魔术指令(%matplotlib inline, auto, notebook)
4.《利用python进行数据分析》(2.1-2.2)