日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

一起用ipython

發布時間:2024/1/17 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一起用ipython 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝

安裝python2版本的軟件包就用命令

   pip install ipython

安裝python3版本對應的軟件包就用命令

  pip3 install ipython

?

進入了ipython,ipython會提示您鍵入下面四個命令之一去試著使用ipython:

命令名 說明

? ipython特性的介紹和概述 %quickref 一份手冊,包含了所有的命令 help python的幫助系統 object? 關于object的詳細信息,如果鍵入object??會更詳細

首先是推薦您看一下quickref的。您注意到了,這個命令以%開頭。所有以%開頭的方法,都是所謂的魔術方法(Magic function),
也就是ipython內置的一些方法。

需要注意的是,魔術方法有%和%%之分,比如%timeit和%%timeit。這玩意在ipython中有專門的叫法,
前者叫line magic后者叫cell magic。

顧名思義,前者是專門針對一行的命令,后者針對多行的命令(這是notebook中的術語,關于notebook請參閱最后),如是而已。
所有的魔術方法都可以查看源碼,仔細閱讀的話,對自己寫代碼也很有裨益,具體方法是在魔術方法后面加??,譬如%timeit??。
代碼是經過高亮和格式化的,

應該很容易閱讀才是。如果您有著奇妙的好奇心的話,想必剛才也嘗試過%timeit?。區別是,這次沒有源碼出現對吧。
但是其他信息,比如type什么的指導性內容會顯示出來。

Tab鍵自動完成

在shell中輸入表達式時,只要按下Tab鍵,當前命令控件中任何與輸入的字符串相匹配的變量(對象、函數等)就會被找出來。

ps.之前我發現我的ipython沒有Tab鍵自動補全功能,tab鍵的功能是縮進。最后 pip install pyreadline即可解決。

下面這個例子,輸入b.后按下<tab>鍵即可得到下圖的結果。

內省

在變量的前面或后面加上一個問號(?)就可以將有關該對象的一些通用信息顯示出來。這就叫做對象的內省。

如果對象是一個函數或實例方法,則其docstring也會被現實出來。

使用??還將顯示出該函數的源代碼。

一些字符串配以通配符(*)即可顯示出所有與該通配符表達式相匹配的名稱。

?

中斷正在執行的代碼

按下Ctrl-C就會引發一個KeyboardInterrupt。除了一些非常特殊的情況下,絕大部分python程序都會立即停止執行

?

執行剪貼板中的代碼

書上說使用ctrl+shift+v將剪貼板的代碼片段粘貼出來,然而windows系統似乎不可行,所以鼠標右鍵粘貼好了。

%paste可以承載剪貼板中的一切文本,并在shell中以整體形式執行。

%cpaste跟%paste差不多,只不過它多出了一個用于粘貼代碼的特殊提示符而已。如果發現粘貼的代碼有錯,只需要按下ctrl+c即可終止%cpaste提示如。

?

鍵盤快捷鍵

在此粘貼給大家作為備忘。

  • Ctrl-P? ? 或上箭頭鍵 后向搜索命令歷史中以當前輸入的文本開頭的命令
  • Ctrl-N? ?或下箭頭鍵 前向搜索命令歷史中以當前輸入的文本開頭的命令
  • Ctrl-R? ?按行讀取的反向歷史搜索(部分匹配)
  • Ctrl-Shift-v? ?從剪貼板粘貼文本
  • Ctrl-C? ?中止當前正在執行的代碼
  • Ctrl-A? ?將光標移動到行首
  • Ctrl-E? ?將光標移動到行尾
  • Ctrl-K? ?刪除從光標開始至行尾的文本
  • Ctrl-U? ?清除當前行的所有文本譯注12
  • Ctrl-F? ?將光標向前移動一個字符
  • Ctrl-b? ?將光標向后移動一個字符
  • Ctrl-L? ?清屏
  • 魔術命令

    魔術關鍵字以%開頭,如果automagic打開了,則不用輸入%,否則需要,使用automagic可以切換狀態
    可以使用%magic參看所有魔術方法

    命令?說明
    %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中的對象上的一切引用

    env 顯示環境變量
    ed或edit 編輯一個文件并執行
    ed -x filename 編輯文件不執行
    edit 3:10 編輯3:10行的指令并執行
    hist 顯示歷史紀錄,可以用-n增加行號
    hist 3:10 顯示3-10行的歷史紀錄
    bg function 把function函數放到后臺執行
    pwd 當前目錄
    pycat filename 語法高亮顯示一個文件
    macro name 1:10 把1:10行的代碼設為name宏
    save filename 1:10 把1:10行代碼保存到文件中
    time statement 計算一段代碼執行時間
    timeit statement 自動選擇重復和循環次數計算一段代碼執行時間
    run filename 執行一個文件,如果希望防止執行的,需要增加if name == “main“:
    autoindent 如果啟用,粘貼的時候會自動縮進代碼
    reset 重置所有變量
    Bash命令
    cls 清除屏幕
    colors

    基于Qt的富GUI控制臺

    Ipython團隊開發了一個基于Qt框架(其目的是為終端應用程序提供諸如內嵌圖片、多行編輯、語法高亮之類的富文本剪輯功能)的GUI控制臺。

    使用

    ipython qtconsole --pylab=inline

    來啟動的話可為其添加繪圖功能。

    ps.這一步剛開始無法執行,我的解決方法是:

    pip install qtconsole,就可以運行了- -..

    ?

    %run命令

    在ipython會話環境中,所有文件都可以通過%run命令當做Python程序來運行。

    輸入 %run 路徑+python文件名稱即可。

    ipython一般的使用,通常只是為了測試一行或者幾行代碼是否能夠執行。究其原因,還是因為命令行中書寫長代碼相較于在文件中寫代碼并不方便,一方面是格式,另一方面是在命令行中寫代碼,一旦中間代碼寫錯,修改起來還是很麻煩的。于是我們不得不一次次退出ipython,去python xxx.py執行?;蛘遲mux開兩個窗口來測試。

    但是其實ipython已經提供了很方便的機制用來執行一個腳本,就是%run命令,%run可以簡化為run。

    使用起來類似于熟悉的python test.py,使用run test.py就好。run命令還可以附加選項,常用的有-t選項,這個會在腳本執行完后,打印出執行的cpu timings。如果指定了-t選項,后面可以跟一個-Nx,x代表一個數字。表示重復執行x次。

    另外比較好用的是-d選項,這個會在pdb中運行腳本。后跟-bxx打斷點。個人沒有什么python調試的經驗,您有興趣可以親自嘗試。

    還有一個-p選項,這個選項會開啟python profiler,從而打印出詳細的執行時間、函數調用等等信息供優化參考。

    ?

    %timeit

    這個命令用來測試一條命令執行的時間,一般而且,會重復100次運行這個命令,然后取出最好的3個結果取平均值。

    試著執行下面的命令:

    In[1]: %timeit [x*x for x in range(100000)]
    同樣,可以指定選項。

    -n指定重復次數,默認100

    -r是取多少個結果的平均值,默認是3

    順帶一提,%timeit測出來的結果遠比真實運行更快,原因是,timeit執行中,會暫時關閉掉垃圾回收(gc)。

    shell中使用python變量

    其實這個不算是魔術方法啦,只是單獨列出來也不太合適,所以也就寫在這里。

    請看下面這段代碼:

    folder = 'data' mkdir $folder cd %folder

    注意到了么,mkdir是一個魔術方法,它是%mkdir的一個鏈接,%mkdir事實上就是shell中的mkdir方法。而folder是一個python變量。但是,確實,shell下的命令訪問了python的變量,只是在變量名前面加了$。如果您熟悉shell腳本的話,這種方式應該很親切才對。

    ?

    %bookmark

    這個方法通常用來記憶路徑,譬如說,您每次都需要cd進一個叫做github/miko/loli/shoujo的目錄,這時候,您可以對這個路徑做一個書簽,%bookmark shoujo github/miko/loli/shoujo,這樣以后就可以直接cd shoujo這樣。

    順便,如果沒有指定路徑,會默認使用當前路徑。

    ?

    %alias

    正如名字揭示的,這個方法用來指定別名。不過,ipython的%alias還能進行參數傳遞。

    看看下面這段:

    In [1]: %alias largest ls -1sSh | grep %s In [2]: largest circles

    很容易懂不是么?%alias后面跟的那個參數就是別名,然后可以通過%s來指定一個參數,使用時傳入。

    ?

    %store

    默認的,別名只會存在于本次會話中,如果希望下次還能使用這個別名,使用%store方法存下來吧。%store latest

    另外,沒保存也不要緊,%store -r會恢復上次會話的別名。

    ?

    %hist

    ipython中history會保存所有會話中的記錄,所以隔一年什么的記錄就會相當多啦。

    雖然我知道你們都會用up,down來尋找歷史記錄……恩,試試ctrl+r,有驚喜。

    另外,類似于hist 3-7什么的,好像也不用我解釋就是了。

    -g選項和grep類似,可以查找些東西出來,然后-n顯示行號,-f保存歷史記錄到文件中去,-p把行號顯示為n:>>>,-n把輸入的結果顯示出來

    轉載于:https://www.cnblogs.com/awakenedy/p/9259387.html

    總結

    以上是生活随笔為你收集整理的一起用ipython的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。