進入ipython
通常我們並不使用Python自帶的直譯器,而是使用另一個比較方便的直譯器——ipython直譯器,命令列下輸入:
ipython
即可進入ipython直譯器。
所有在python直譯器下可以執行的程式碼都可以在ipython直譯器下執行:
print "hello, world"
hello, world
可以進行簡單賦值操作:
a = 1
直接在直譯器中輸入變數名,會顯示變數的值(不需要加print
):
a
1
b = [1, 2, 3]
ipython magic命令
ipython直譯器提供了很多以百分號%
開頭的magic
命令,這些命令很像linux系統下的命令列命令(事實上有些是一樣的)。
檢視所有的magic
命令:
%lsmagic
Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cd %clear %cls %colors %config %connect_info %copy %ddir %debug %dhist %dirs %doctest_mode %echo %ed %edit %env %gui %hist %history %install_default_config %install_ext %install_profiles %killbgscripts %ldir %less %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %macro %magic %matplotlib %mkdir %more %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %ren %rep %rerun %reset %reset_selective %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%cmd %%debug %%file %%html %%javascript %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
line magic
以一個百分號開頭,作用與一行;
cell magic
以兩個百分號開頭,作用於整個cell。
最後一行Automagic is ON, % prefix IS NOT needed for line magics.
說明在此時即使不加上%
也可以使用這些命令。
使用 whos
檢視當前的變數空間:
%whos
Variable Type Data/Info
----------------------------
a int 1
b list n=3
使用 reset
重置當前變數空間:
%reset -f
再檢視當前變數空間:
%whos
Interactive namespace is empty.
使用 pwd
檢視當前工作資料夾:
%pwd
u`C:\Users\lijin\Documents\Git\python-tutorial\01. python tools`
使用 mkdir
產生新資料夾:
%mkdir demo_test
使用 cd
改變工作資料夾:
%cd demo_test/
C:UserslijinDocumentsGitpython-tutorial 1. python toolsdemo_test
使用 writefile
將cell中的內容寫入檔案:
%%writefile hello_world.py
print "hello world"
Writing hello_world.py
使用 ls
檢視當前工作資料夾的檔案:
%ls
驅動器 C 中的卷是 System
卷的序列號是 DC4B-D785
C:UserslijinDocumentsGitpython-tutorial 1. python toolsdemo_test 的目錄
2015/09/18 11:32 <DIR> .
2015/09/18 11:32 <DIR> ..
2015/09/18 11:32 19 hello_world.py
1 個檔案 19 位元組
2 個目錄 121,763,831,808 可用位元組
使用 run
命令來執行這個程式碼:
%run hello_world.py
hello world
刪除這個檔案:
import os
os.remove(`hello_world.py`)
檢視當前資料夾,hello_world.py
已被刪除:
%ls
驅動器 C 中的卷是 System
卷的序列號是 DC4B-D785
C:UserslijinDocumentsGitpython-tutorial 1. python toolsdemo_test 的目錄
2015/09/18 11:32 <DIR> .
2015/09/18 11:32 <DIR> ..
0 個檔案 0 位元組
2 個目錄 121,763,831,808 可用位元組
返回上一層資料夾:
%cd ..
C:UserslijinDocumentsGitpython-tutorial 1. python tools
使用 rmdir
刪除資料夾:
%rmdir demo_test
使用 hist
檢視歷史命令:
%hist
print "hello, world"
a = 1
a
b = [1, 2, 3]
%lsmagic
%whos
%reset -f
%whos
%pwd
%mkdir demo_test
%cd demo_test/
%%writefile hello_world.py
print "hello world"
%ls
%run hello_world.py
import os
os.remove(`hello_world.py`)
%ls
%cd ..
%rmdir demo_test
%hist
ipython 使用
使用 ?
檢視函式的幫助:
sum?
使用 ??
檢視函式幫助和函式原始碼(如果是用python實現的):
# 匯入numpy和matplotlib兩個包
%pylab
# 檢視其中sort函式的幫助
sort??
Using matplotlib backend: Qt4Agg
Populating the interactive namespace from numpy and matplotlib
ipython 支援使用 <tab>
鍵自動補全命令。
使用 _
使用上個cell的輸出結果:
a = 12
a
12
_ + 13
25
可以使用 !
來執行一些系統命令。
!ping baidu.com
正在 Ping baidu.com [180.149.132.47] 具有 32 位元組的資料:
來自 180.149.132.47 的回覆: 位元組=32 時間=69ms TTL=49
來自 180.149.132.47 的回覆: 位元組=32 時間=64ms TTL=49
來自 180.149.132.47 的回覆: 位元組=32 時間=61ms TTL=49
來自 180.149.132.47 的回覆: 位元組=32 時間=63ms TTL=49
180.149.132.47 的 Ping 統計資訊:
資料包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 61ms,最長 = 69ms,平均 = 64ms
當輸入出現錯誤時,ipython會指出出錯的位置和原因:
1 + "hello"
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-25-d37bedb9732a> in <module>()
----> 1 1 + "hello"
TypeError: unsupported operand type(s) for +: `int` and `str`