日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:IDLE

IDLE

源代碼: Lib/idlelib/

創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元寧津做網(wǎng)站,已為上家服務,為寧津各地企業(yè)和個人服務,聯(lián)系電話:18980820575


IDLE 是 python 所內(nèi)置的開發(fā)與學習環(huán)境。

IDLE 具有以下特性:

  • 編碼于 100% 純正的 Python,使用名為 tkinter 的圖形用戶界面工具

  • 跨平臺:在 Windows、Unix 和 macOS 上工作近似。

  • 提供輸入輸出高亮和錯誤信息的 Python 命令行窗口 (交互解釋器)

  • 提供多次撤銷操作、Python 語法高亮、智能縮進、函數(shù)調(diào)用提示、自動補全等功能的多窗口文本編輯器

  • 在多個窗口中檢索,在編輯器中替換文本,以及在多個文件中檢索(通過 grep)

  • 提供持久保存的斷點調(diào)試、單步調(diào)試、查看本地和全局命名空間功能的調(diào)試器

  • 配置、瀏覽以及其它對話框

目錄

IDEL 有兩種主要的窗口類型:Shell窗口和編輯器窗口。其中編輯器窗口可以同時打開多個。并且對于 Windows 和 Linux 平臺,窗口頂部主菜單各不相同。以下每個菜單說明項,都標識了與之關聯(lián)的平臺類型。

導出窗口,例如使用 編輯=>在文件中查找 是編輯器窗口的的一個子類型。它們目前有著相同的主菜單,但是默認標題和上下文菜單不同。

在macOS上,只有一個應用程序菜單。它會根據(jù)當前選擇的窗口動態(tài)變化。它具有一個IDLE菜單,并且下面描述的某些條目已移動到符合Apple準則的位置。

文件菜單 (命令行和編輯器)

新建文件

創(chuàng)建一個文件編輯器窗口。

打開…

使用打開窗口以打開一個已存在的文件。

打開模塊…

打開一個已存在的模塊 (搜索 sys.path)

近期文件

打開一個近期文件列表,選取一個以打開它。

Module Browser

于當前所編輯的文件中使用樹形結構展示函數(shù)、類以及方法。在命令行中,首先打開一個模塊。

路徑瀏覽

在樹狀結構中展示 sys.path 目錄、模塊、函數(shù)、類和方法。

保存

如果文件已經(jīng)存在,則將當前窗口保存至對應的文件。自打開或上次保存之后經(jīng)過修改的文件的窗口標題欄首尾將出現(xiàn)星號 * 。如果沒有對應的文件,則使用“另存為”代替。

保存為…

Save the current window with a Save As dialog. The file saved becomes the new associated file for the window. (If your file namager is set to hide extensions, the current extension will be omitted in the file name box. If the new filename has no ‘.’, ‘.py’ and ‘.txt’ will be added for Python and text files, except that on macOS Aqua,’.py’ is added for all files.)

另存為副本…

Save the current window to different file without changing the associated file. (See Save As note above about filename extensions.)

打印窗口

通過默認打印機打印當前窗口。

關閉窗口

關閉當前窗口(如果是未保存的編輯器窗口,則會提示保存;如果是未保存的 Shell 窗口,則會提示退出執(zhí)行)。 在Shell 窗口中調(diào)用 exit()close() 也會關閉 Shell 窗口。 如果這是唯一的窗口,則還會退出 IDLE。

退出 IDLE

關閉所有窗口并退出 IDLE (將提示保存未保存的編輯窗口)。

編輯菜單(命令行和編輯器)

撤銷操作

撤銷當前窗口的最近一次操作。最高可以撤回 1000 條操作記錄。

重做

重做當前窗口最近一次所撤銷的操作。

全選

選擇當前窗口的全部內(nèi)容。

剪切

復制選區(qū)至系統(tǒng)剪貼板,然后刪除選區(qū)。

復制

復制選區(qū)至系統(tǒng)剪貼板。

粘貼

插入系統(tǒng)剪貼板的內(nèi)容至當前窗口。

剪貼板功能也可用于上下文目錄。

查找…

打開一個提供多選項的查找窗口。

再次查找

重復上一次搜索(如果有的話)。

查找選區(qū)

查找當前選中的字符串,如果存在

在文件中查找…

打開文件查找對話框。將結果輸出至新的輸出窗口。

替換…

打開 查找并替換 對話框。

前往行

將光標移到所請求行的開頭并使該行可見。 對于超過文件尾的請求將會移到文件尾。 清除所有選區(qū)并更新行列狀態(tài)。

顯示補全信息

打開一個可滾動列表以允許選擇現(xiàn)有的名稱。 請參閱下面編輯與導航一節(jié)中的 自動補全。

展開文本

展開鍵入的前綴以匹配同一窗口中的完整單詞;重復以獲得不同的擴展。

Show Call Tip

在函數(shù)的右括號后,打開一個帶有函數(shù)參數(shù)提示的小窗口。 請參閱下面的“編輯和導航”部分中的 調(diào)用提示。

Show Surrounding Parens

突出顯示周圍的括號。

格式菜單(僅 window 編輯器)

格式段落

在注釋塊或多行字符串或字符串中的選定行中,重新格式化當前以空行分隔的段落。段落中的所有行的格式都將少于N列,其中N默認為72。

增加縮進

將選定的行右縮進(默認為4個空格)。

減少縮進

將選定的行左縮進(默認為4個空格)。

注釋

在所選行的前面插入 ##。

取消注釋

從所選行中刪除開頭的 # 或 ##。

制表符化

前導 空格變成制表符。 (注意:我們建議使用4個空格來縮進Python代碼。)

取消制表符化

所有 制表符轉換為正確的空格數(shù)。

縮進方式切換

打開一個對話框,以在制表符和空格之間切換。

縮進寬度調(diào)整

打開一個對話框以更改縮進寬度。 Python社區(qū)接受的默認值為4個空格。

Strip Trailing Chitespace

通過將 str.rstrip 應用于每行(包括多行字符串中的行),刪除行尾非空白字符之后的尾隨空格和其他空白字符。除Shell窗口外,在文件末尾刪除多余的換行符。

運行菜單(僅 window 編輯器)

運行模塊

執(zhí)行 檢查模塊 。如果沒有錯誤,重新啟動 shell 以清理環(huán)境,然后執(zhí)行模塊。輸出顯示在 shell 窗口中。請注意,輸出需要使用 “打印” 或 “寫入”。執(zhí)行完成后,Shell 將保留焦點并顯示提示。此時,可以交互地探索執(zhí)行的結果。這類似于在命令行執(zhí)行帶有 python -i file 的文件。

運行… 定制

與 運行模塊 相同,但使用自定義設置運行該模塊。命令行參數(shù) 擴展 sys.argv ,就像在命令行上傳遞一樣。該模塊可以在命令行管理程序中運行,而無需重新啟動。

檢查模塊

檢查 “編輯器” 窗口中當前打開的模塊的語法。如果尚未保存該模塊,則 IDLE會提示用戶保存或自動保存,如在 “空閑設置” 對話框的 “常規(guī)” 選項卡中所選擇的那樣。如果存在語法錯誤,則會在 “編輯器” 窗口中指示大概位置。

Python Shell

打開或喚醒Python Shell窗口。

Shell 菜單(僅限 Shell 窗口)

查看最近重啟

將Shell窗口滾動到上一次Shell重啟。

重啟Shell

重啟 shell 以清理環(huán)境,重置顯示和異常處理。

上一條歷史記錄

循環(huán)瀏覽歷史記錄中與當前條目匹配的早期命令。

下一條歷史記錄

循環(huán)瀏覽歷史記錄中與當前條目匹配的后續(xù)命令。

中斷執(zhí)行

停止正在運行的程序。

調(diào)試菜單(僅限 Shell 窗口)

跳轉到文件/行

查看當前行。 以光標提示,且上一行為文件名和行號。 如果找到目標,如果文件尚未打開則打開該文件,并顯示目標行。 使用此菜單項來查看異?;厮葜幸玫脑创a行以及用文件中查找功能找到的行。 也可在 Shell 窗口和 Output 窗口的上下文菜單中使用。

調(diào)試器(切換)

激活后,在Shell中輸入的代碼或從編輯器中運行的代碼將在調(diào)試器下運行。在編輯器中,可以使用上下文菜單設置斷點。此功能不完整,具有實驗性。

堆棧查看器

在樹狀目錄中顯示最后一個異常的堆棧回溯,可以訪問本地和全局。

自動打開堆棧查看器

在未處理的異常上切換自動打開堆棧查看器。

選項菜單(命令行和編輯器)

配置 IDLE

打開配置對話框并更改以下各項的首選項:字體、縮進、鍵綁定、文本顏色主題、啟動窗口和大小、其他幫助源和擴展名。在MacOS上,通過在應用程序菜單中選擇首選項來打開配置對話框。有關詳細信息,請參閱:幫助和首選項下的 首選項設置。

大多數(shù)配置選項適用于所有窗口或將來的所有窗口。以下選項僅適用于活動窗口。

顯示/隱藏代碼上下文(僅限編輯器窗口)

在編輯窗口頂部打開一個面板來顯示在窗口頂部滾動的代碼塊上下文。 請參閱下文“編輯與導航”章節(jié)中的 代碼上下文。

顯示/隱藏行號(僅限 Editor 窗口)

在編輯窗口左側打開一個顯示代碼文本行編號的列。 默認為關閉顯示,這可以在首選項中修改 (參見 設置首選項)。

縮放/還原高度

在窗口的正常尺寸和最大高度之間進行切換。 初始尺寸默認為 40 行每行 80 字符,除非在配置 IDLE 對話框的通用選項卡中做了修改。 屏幕的最大高度由首次在屏幕上將縮小的窗口最大化的操作來確定。 改變屏幕設置可能使保存的高度失效。 此切換操作在窗口最大化狀態(tài)下無效。

Window 菜單(命令行和編輯器)

列出所有打開的窗口的名稱;選擇一個將其帶到前臺(必要時對其進行去符號化)。

幫助菜單(命令行和編輯器)

關于 IDLE

顯示版本,版權,許可證,榮譽等。

IDLE 幫助

顯示此 IDLE 文檔,詳細介紹菜單選項,基本編輯和導航以及其他技巧。

Python 文檔

訪問本地Python文檔(如果已安裝),或啟動Web瀏覽器并打開docs.python.org顯示最新的Python文檔。

海龜演示

使用示例 Python 代碼運行 turtledemo 模塊和海龜繪圖

可以在 “常規(guī)” 選項卡下的 “配置IDLE” 對話框中添加其他幫助源。有關“幫助”菜單選項的更多信息,請參見下面的 幫助源 小節(jié)。

Context menus

通過在窗口中右擊(在 macOS 上則為按住 Control 鍵點擊)來打開一個上下文菜單。 上下文菜單也具有編輯菜單中的標準剪貼板功能。

剪切

復制選區(qū)至系統(tǒng)剪貼板,然后刪除選區(qū)。

復制

復制選區(qū)至系統(tǒng)剪貼板。

粘貼

插入系統(tǒng)剪貼板的內(nèi)容至當前窗口。

編輯器窗口也具有斷點功能。 設置了斷點的行會被特別標記。 斷點僅在啟用調(diào)試器運行時有效。 文件的斷點會被保存在用戶的 .idlerc 目錄中。

設置斷點

在當前行設置斷點

清除斷點

清除當前行斷點

shell 和輸出窗口還具有以下內(nèi)容。

跳轉到文件/行

與調(diào)試菜單相同。

Shell 窗口也有一個輸出折疊功能,參見下文的 Python Shell 窗口 小節(jié)。

壓縮

如果將光標位于輸出行上,則會折疊在上方代碼和下方提示直到 ‘Squeezed text’ 標簽之間的所有輸出。

Editing and Navigation

編輯窗口

IDLE 可以在啟動時打開編輯器窗口,這取決于選項設置和你啟動 IDLE 的方式。 在此之后,請使用 File 菜單。 對于給定的文件只能打開一個編輯器窗口。

標題欄包含文件名稱、完整路徑,以及運行該窗口的 Python 和 IDLE 版本。 狀態(tài)欄包含行號 (‘Ln’) 和列號 (‘Col’)。 行號從 1 開始;列號則從 0 開始。

IDE 會定擴展名為 .py* 的文件包含 Python 代碼而其他文件不包含。 可使用 Run 菜單來運行 Python 代碼。

按鍵綁定

在本節(jié)中,’C’ 是指 Windows 和 Unix 上的 Control 鍵,以及 macOS 上的 Command 鍵。

  • Backspace 向左刪除; Del 向右刪除

  • C-Backspace 向左刪除單詞; C-Del 向右刪除單詞

  • 方向鍵和 Page Up/Page Down 移動

  • C-LeftArrow 和 C-RightArrow 按單詞移動

  • Home/End 跳轉到行首/尾

  • C-Home/C-End 跳轉到文檔首/尾

  • 一些有用的Emacs綁定是從Tcl / Tk繼承的:

    • C-a 行首

    • C-e 行尾

    • C-k 刪除行(但未將其放入剪貼板)

    • C-l 將插入點設為窗口中心

    • C-b 后退一個字符而不刪除該字符(通常你也可以用方向鍵進行此操作)

    • C-f 前進一個字符而不刪除該字符(通常你也可以用方向鍵進行此操作)

    • C-p 向上一行(通常你也可以用方向鍵進行此操作)

    • C-d 刪除下一個字符

標準的鍵綁定(例如 C-c 復制和 C-v 粘貼)仍會有效。 鍵綁定可在配置 IDLE 對話框中選擇。

自動縮進

在一個代碼塊開頭的語句之后,下一行會縮進 4 個空格符(在 Python Shell 窗口中是一個制表符)。 在特定關鍵字之后(break, return 等),下一行將不再縮進。 在開頭的縮進中,按 Backspace 將會刪除 4 個空格符。 Tab 則會插入空格符(在 Python Shell 窗口中是一個制表符),具體數(shù)量取決于縮進寬度。 目前,Tab 鍵按照 Tcl/Tk 的規(guī)定設置為四個空格符。

另請參閱 Format 菜單 的縮進/取消縮進區(qū)的命令。

搜索和替換

Any selection becomes a search target. However, only selections within a line work because searches are only performed within lines with the terminal newline removed. If [x] Regular expresion is checked, the target is interpreted according to the Python re module.

補全

當被請求并且可用時,將為模塊名、類屬性、函數(shù)或文件名提供補全。 每次請求方法將顯示包含現(xiàn)有名稱的補全提示框。 (例外情況參見下文的 Tab 補全。) 對于任意提示框,要改變被補全的名稱和提示框中被高亮的條目,可以通過輸入和刪除字符、按 Up, Down, PageUp, PageDown, Home 和 End 鍵;或是在提示框中單擊。 要關閉補全提示框可以通過 Escape, Enter 或按兩次 Tab 鍵或是在提示框外單擊。 在提示框內(nèi)雙擊則將執(zhí)行選擇并關閉。

有一種打開提示框的方式是輸入一個關鍵字符并等待預設的一段間隔。 此間隔默認為 2 秒;這可以在設置對話框中定制。 (要防止自動彈出,可將時延設為一個很大的豪秒數(shù)值,例如 100000000。) 對于導入的模塊名或者類和函數(shù)屬性,請輸入 ‘.’。 對于根目錄下的文件名,請在開頭引號之后立即輸入 os.sep 或 os.altsep。 (在 Windows 下,可以先指定一個驅動器。) 可通過輸入目錄名和分隔符來進入子目錄。

除了等待,或是在提示框關閉之后,可以使用 Edit 菜單的 Show Completions 來立即打開一個補全提示框。 默認的熱鍵是 C-space。 如果在打開提示框之前輸入一某個名稱的前綴,則將顯示第一個匹配項或最接近的項。 結果將與在提示框已顯示之后輸入前綴時相同。 在一個引號之后執(zhí)行 Show Completions 將會實例當前目錄下的文件名而不是根目錄下的。

在輸入前綴后按 Tab 鍵的效果通常與 Show Completions 相同。 (如果未輸入前綴則為縮進。) 但是,如果輸入的前綴只有一個匹配項,則該匹配項會立即被添加到編輯器文本中而不打開補全提示框。

在字符串以外且開頭不帶 ‘.’ 地輸入前綴并執(zhí)行 ‘Show Completions’ 或按 Tab 鍵將打開一個包含關鍵字、內(nèi)置名稱和現(xiàn)有模塊級名稱的補全提示框。

當在編輯器(而非 Shell)中編輯代碼時,可以通過運行你的代碼并在此后不重啟 Shell 來增加可用的模塊級名稱。 這在文件頂部添加了導入語句之后會特別有用。 這還會增加可用的屬性補全。

補全提示框在初始時會排除以 ‘_‘ 打頭的名稱,對于模塊還會排除未包括在 ‘__all__‘ 中的名稱。 這些隱藏名稱可通過在 ‘.’ 之后輸入 ‘_‘ 來訪問,這在提示框打開之前或之后都是有效的。

提示

當在一個 可用的 函數(shù)名稱之后輸入 ( 時將自動顯示一個調(diào)用提示。 函數(shù)名稱表達式可以包括點號和方括號索引操作。 調(diào)用提示將保持打開直到它被點擊、光標移出參數(shù)區(qū)、或是輸入了 )。 當光標位于某個定義的參數(shù)區(qū)時,可以在菜單中選擇 Edit 的 “Show Call Tip” 或是輸入其快捷鍵來顯示調(diào)用提示。

調(diào)用提示是由函數(shù)的簽名和文檔字符串到第一個空行或第五個非空行為止的內(nèi)容組成的。 (某些內(nèi)置函數(shù)沒有可訪問的簽名。) 簽名中的 ‘/‘ 或 ‘*‘ 指明其前面或后面的參數(shù)僅限以位置或名稱(關鍵字)方式傳入。 具體細節(jié)可能會改變。

在 Shell 中,可訪問的函數(shù)取決于有哪些模塊已被導入用戶進程,包括由 IDLE 本身導入的模塊,以及哪些定義已被運行,以上均從最近的重啟動開始算起。

例如,重啟動 Shell 并輸入 itertools.count(。 將顯示調(diào)用提示,因為 IDLE 出于自身需要已將 itertools 導入了用戶進程。 (此行為可能會改變。) 輸入 turtle.write( 則不顯示任何提示。 因為 IDLE 本身不會導入 turtle。 菜單項和快捷鍵同樣不會有任何反應。 輸入 import turtle。 則在此之后,turtle.write( 將顯示調(diào)用提示。

在編輯器中,import 語句在文件運行之前是沒有效果的。 在輸入 import 語句之后、添加函數(shù)定義之后,或是打開一個現(xiàn)有文件之后可以先運行一下文件。

代碼上下文

在一個包含 Python 代碼的編輯器窗口內(nèi)部,可以切換代碼上下文以便顯示或隱藏窗口頂部的面板。 當顯示時,此面板可以凍結代碼塊的開頭行,例如以 class, defif 關鍵字開頭的行,這樣的行在不顯示時面板時可能離開視野。 此面板的大小將根據(jù)需要擴展和收縮以顯示當前層級的全部上下文,直至達到配置 IDLE 對話框中所定義的最大行數(shù)(默認為 15)。 如果如果沒有當前上下文行而此功能被啟用,則將顯示一個空行。 點擊上下文面板中的某一行將把該行移至編輯器頂部。

上下文面板的文本和背景顏色可在配置 IDLE 對話框的 Highlights 選項卡中進行配置。

Shell window

In IDLE’s Shell, enter, edit, and recall complete statements. (Most consoles and terminals only work with a single physical line at a time).

Submit a single-line statement for execution by hitting Return with the cursor anywhere on the line. If a line is extended with Backslash (\), the cursor must be on the last physical line. Submit a multi-line compound statement by entering a blank line after the statement.

When one pastes code into Shell, it is not compiled and possibly executed until one hits Return, as specified above. One may edit pasted code first. If one pastes more than one statement into Shell, the result will be a SyntaxError when multiple statements are compiled as if they were one.

Lines containing RESTART mean that the user execution process has been re-started. This occurs when the user execution process has crashed, when one requests a restart on the Shell menu, or when one runs code in an editor window.

之前小節(jié)中描述的編輯功能在交互式地輸入代碼時也可使用。 IDLE 的 Shell 窗口還會響應以下按鍵。

  • C-c 中斷執(zhí)行命令

  • C-d 發(fā)送文件結束命令;如果在 >>> 提示符后按下會關閉窗口。

  • Alt-/ (擴展單詞) 也有助于減少按鍵量

    歷史命令

    • Alt-p 提取與你所輸入鍵匹配的前一條命令。 在 macOS 上請使用 C-p。

    • Alt-n 提取下一條命令。 在 macOS 上請使用 C-n。

    • Return while the cursor is on any previous command retrieves that command

文本顏色

IDLE 文本默認為白底黑字,但有特殊含義的文本將以彩色顯示。 對于 Shell 來說包括 Shell 輸出,Shell 錯誤,用戶輸出和用戶錯誤。 對于 Shell 提示符下或編輯器中的 Python 代碼來說則包括關鍵字,內(nèi)置類和函數(shù)名稱,classdef 之后的名稱,字符串和注釋等。 對于任意文本窗口來說則包括光標(如果存在)、找到的文本(如果可能)和選定的文本。

IDLE 還會高亮顯示模式匹配語句中的 軟關鍵字 match, case 和 _。 但是,這種高亮顯示并不完美,在某些極端情況下還會出現(xiàn)錯誤,包括 _case 模式中出現(xiàn)的時候。

廣西著色是在背景上完成的,因此有時會看到非著色的文本。 要改變顏色方案,請使用配置 IDLE 對話框的高亮選項卡。 編輯器中的調(diào)試器斷點行標記和彈出面板和對話框中的文本則是用戶不可配置的。

Startup and Code Execution

在附帶 -s 選項啟用的情況下,IDLE 將會執(zhí)行環(huán)境變量 IDLESTARTUP 或 PYTHONSTARTUP 所引用的文件。 IDLE 會先檢查 IDLESTARTUP;如果 IDLESTARTUP 存在則會運行被引用的文件。 如果 IDLESTARTUP 不存在,則 IDLE 會檢查 PYTHONSTARTUP。 這些環(huán)境變量所引用的文件是存放經(jīng)常被 IDLE Shell 所使用的函數(shù),或者執(zhí)行導入常用模塊的 import 語句的便捷場所。

此外,Tk 也會在存在啟動文件時加載它。 請注意 Tk 文件會被無條件地加載。 此附加文件名為 .Idle.py 并且會在用戶的家目錄下查找。 此文件中的語句將在 Tk 的命名空間中執(zhí)行,所以此文件不適用于導入要在 IDLE 的 Python Shell 中使用的函數(shù)。

命令行用法

 
 
 
 
  1. idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...
  2. -c command run command in the shell window
  3. -d enable debugger and open shell window
  4. -e open editor window
  5. -h print help message with legal combinations and exit
  6. -i open shell window
  7. -r file run file in shell window
  8. -s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
  9. -t title set title of shell window
  10. - run stdin in shell (- must be last option before args)

如果有參數(shù):

  • 如果使用了 -, -cr,則放在 sys.argv[1:...]sys.argv[0] 中的所有參數(shù)都會被設為 '', '-c''-r'。 不會打開任何編輯器窗口,即使是在選項對話框中的默認設置。

  • 在其他情況下,參數(shù)為要打開編輯的文件而 sys.argv 反映的是傳給 IDLE 本身的參數(shù)。

啟動失敗

IDLE 使用一個套接字在 IDLE GUI 進程和用戶代碼執(zhí)行進程之間通信。 當 Shell 啟動或重啟動時必須建立一個連接。 (重啟動會以一個內(nèi)容為 ‘RESTART’ 的分隔行來標示)。 如果用戶進程無法連接到 GUI 進程,它通常會顯示一個包含 ‘cannot connect’ 消息的 Tk 錯誤提示框來引導用戶。 隨后將會退出程序。

有一個 Unix 系統(tǒng)專屬的連接失敗是由系統(tǒng)網(wǎng)絡設置中錯誤配置的掩碼規(guī)則導致的。 當從一個終端啟動 IDLE 時,用戶將看到一條以 ** Invalid host: 開頭的消息。 有效的值為 127.0.0.1 (idlelib.rpc.LOCALHOST)。 用戶可以在一個終端窗口輸入 tcpconnect -irv 127.0.0.1 6543 并在另一個終端窗口中輸入 tcplisten 來進行診斷。

導致連接失敗的一個常見原因是用戶創(chuàng)建的文件與標準庫模塊同名,例如 random.pytkinter.py。 當這樣的文件與要運行的文件位于同一目錄中時,IDLE 將無法導入標準庫模塊。 可用的解決辦法是重命名用戶文件。

雖然現(xiàn)在已不太常見,但殺毒軟件或防火墻程序也有可能會阻止連接。 如果無法將此類程序設為允許連接,那么為了運行 IDLE 就必須將其關閉。 允許這樣的內(nèi)部連接是安全的,因為數(shù)據(jù)在外部端口上不可見。 一個類似的問題是錯誤的網(wǎng)絡配置阻止了連接。

Python 的安裝問題有時會使 IDLE 退出:存在多個版本時可能導致程序崩潰,或者單獨安裝時可能需要管理員權限。 如果想要避免程序崩潰,或是不想以管理員身份運行,最簡單的做法是完全卸載 Python 并重新安裝。

有時會出現(xiàn) pythonw.exe 僵尸進程問題。 在 Windows 上,可以使用任務管理員來檢查并停止該進程。 有時由程序崩潰或鍵盤中斷(control-C)所發(fā)起的重啟動可能會出現(xiàn)連接失敗。 關閉錯誤提示框或使用 Shell 菜單中的 Restart Shell 可能會修復此類臨時性錯誤。

當 IDLE 首次啟動時,它會嘗試讀取 ~/.idlerc/ 中的用戶配置文件(~ 是用戶的家目錄)。 如果配置有問題,則應當顯示一條錯誤消息。 除隨機磁盤錯誤之外,此類錯誤均可通過不手動編輯這些文件來避免。 請使用 Options 菜單來打開配置對話框。 一旦用戶配置文件出現(xiàn)錯誤,最好的解決辦法就是刪除它并使用配置對話框重新設置。

如果 IDLE 退出時沒有發(fā)出任何錯誤消息,并且它不是通過控制臺啟動的,請嘗試通過控制臺或終端 (python -m idlelib) 來啟動它以查看是否會出現(xiàn)錯誤消息。

在基于 Unix 的系統(tǒng)上使用 tcl/tk 低于 8.6.11 的版本 (查看 About IDLE) 時特定字體的特定字符可能導致終端提示 tk 錯誤消息。 這可能發(fā)生在啟動 IDLE 編輯包此種字符的文件或是在之后輸入此種字符的時候。 如果無法升級 tcl/tk,可以重新配置 IDLE 來使用其他的字體。

運行用戶代碼

除了少量例外,使用 IDLE 執(zhí)行 Python 代碼的結果應當與使用默認方法,即在文本模式的系統(tǒng)控制臺或終端窗口中直接通過 Python 解釋器執(zhí)行同樣的代碼相同。 但是,不同的界面和操作有時會影響顯示的結果。 例如,sys.modules 初始時具有更多條目,而 threading.active_count() 將返回 2 而不是 1。

在默認情況下,IDLE 會在單獨的 OS 進程中運行用戶代碼而不是在運行 Shell 和編輯器的用戶界面進程中運行。 在執(zhí)行進程中,它會將 sys.stdin, sys.stdoutsys.stderr 替換為從 Shell 窗口獲取輸入并向其發(fā)送輸出的對象。 保存在 sys.__stdin__, sys.__stdout__sys.__stderr__ 中的原始值不會被改變,但可能會為 None

將打印輸出從一個進程發(fā)送到另一個進程中的文本部件要比打印到同一個進程中的系統(tǒng)終端慢。 這在打印多個參數(shù)時將有更明顯的影響,因為每個參數(shù)、每個分隔符和換行符對應的字符串都要單獨發(fā)送。 在開發(fā)中,這通常不算是問題,但如果希望能在 IDLE 中更快地打印,可以將想要顯示的所有內(nèi)容先格式化并拼接到一起然后打印單個字符串。 格式字符串和 str.join() 都可以被用于合并字段和文本行。

IDLE’s standard stream replacements are not inherited by subprocesses created in the execution process, whether directly by user code or by modules such as multiprocessing. If such subprocess use input from sys.stdin or print or write to sys.stdout or sys.stderr, IDLE should be started in a command line window. (On Windows, use python or py rather than pythonw or pyw.) The secondary subprocess will then be attached to that window for input and output.

如果 sys 被用戶代碼重置,例如使用了 importlib.reload(sys),則 IDLE 的修改將丟失,來自鍵盤的輸入和向屏幕的輸出將無法正確運作。

當 Shell 獲得焦點時,它將控制鍵盤與屏幕。 這通常會保持透明,但一些直接訪問鍵盤和屏幕的函數(shù)將會不起作用。 這也包括那些確定是否有鍵被按下以及是哪個鍵被按下的系統(tǒng)專屬函數(shù)。

在執(zhí)行進程中運行的 IDLE 代碼會向調(diào)用棧添加在其他情況下不存在的幀。 IDLE 包裝了 sys.getrecursionlimitsys.setrecursionlimit 以減少額外棧幀的影響。

當用戶代碼直接或者通過調(diào)用 sys.exit 引發(fā) SystemExit 時,IDLE 將返回 Shell 提示符而非完全退出。

Shell中的用戶輸出

當一個程序輸出文本時,結果將由相應的輸出設備來確定。 當 IDLE 執(zhí)行用戶代碼時,sys.stdoutsys.stderr 會被連接到 IDLE Shell 的顯示區(qū)。 它的某些特性是從底層的 Tk Text 部件繼承而來。 其他特性則是程序所添加的。 總之,Shell 被設計用于開發(fā)環(huán)境而非生產(chǎn)環(huán)境運行。

例如,Shell 絕不會丟棄輸出。 一個向 Shell 發(fā)送無限輸出的程序將最終占滿內(nèi)存,導致內(nèi)存錯誤。 作為對比,某些系統(tǒng)文本模式窗口只會保留輸出的最后 n 行。 例如,Windows 控制臺可由用戶設置保留 1 至 9999 行,默認為 300 行。

A Tk Text widget, and hence IDLE’s Shell, displays characters (codepoints) in the BMP (Basic Multilingual Plane) subset of Unicode. Which characters are displayed with a proper glyph and which with a replacement box depends on the operating system and installed fonts. Tab characters cause the following text to begin after the next tab stop. (They occur every 8 ‘characters’). Newline characters cause following text to appear on a new line. Other control characters are ignored or displayed as a space, box, or something else, depending on the operating system and font. (Moving the text cursor through such output with arrow keys may exhibit some surprising spacing behavior.)

 
 
 
 
  1. >>> s = 'a\tb\a<\x02><\r>\bc\nd' # Enter 22 chars.
  2. >>> len(s)
  3. 14
  4. >>> s # Display repr(s)
  5. 'a\tb\x07<\x02><\r>\x08c\nd'
  6. >>> print(s, end='') # Display s as is.
  7. # Result varies by OS and font. Try it.

repr 函數(shù)會被用于表達式值的交互式回顯。 它將返回輸入字符串的一個修改版本,其中的控制代碼、部分 BMP 碼位以及所有非 BMP 碼位都將被替換為轉義代碼。 如上面所演示的,它使用戶可以辨識字符串中的字符,無論它們會如何顯示。

普通的與錯誤的輸出通常會在與代碼輸入和彼此之間保持區(qū)分 (顯示于不同的行)。 它們也會分別使用不同的高亮顏色。

對于 SyntaxError 回溯信息,表示檢測到錯誤位置的正常 ‘^’ 標記被替換為帶有代表錯誤的文本顏色高亮。 當從文件運行的代碼導致了其他異常時,用戶可以右擊回溯信息行在 IDLE 編輯器中跳轉到相應的行。 如有必要將打開相應的文件。

Shell 具有將輸出行折疊為一個 ‘Squeezed text’ 標簽的特殊功能。 此功能將自動應用于超過 N 行的輸出 (默認 N = 50)。 N 可以在設置對話框中 General 頁的 PyShell 區(qū)域中修改。 行數(shù)更少的輸出也可通過在輸出上右擊來折疊。 此功能適用于過多的輸出行數(shù)導致滾動操作變慢的情況。

已折疊的輸出可通過雙擊該標簽來原地展開。 也可通過右擊該標簽將其發(fā)送到剪貼板或單獨的查看窗口。

開發(fā) tkinter 應用程序

IDLE 有意與標準 Python 保持區(qū)別以方便 tkinter 程序的開發(fā)。 在標準 Python 中輸入 import tkinter as tk; root = tk.Tk() 不會顯示任何東西。 在 IDLE 中輸入同樣的代碼則會顯示一個 tk 窗口。 在標準 Python 中,還必須輸入 root.update() 才會將窗口顯示出來。 IDLE 會在幕后執(zhí)行同樣的方法,每秒大約 20 次,即每隔大約 50 毫秒。 下面輸入 b = tk.Button(root, text='button'); b.pack()。 在標準 Python 中仍然不會有任何可見的變化,直到輸入 root.update()

大多數(shù) tkinter 程序都會運行 root.mainloop(),它通常直到 tk 應用被銷毀時才會返回。 如果程序是通過 python -i 或 IDLE 編輯器運行的,則 >>> Shell 提示符將直到 mainloop() 返回時才會出現(xiàn),這時將結束程序的交互。

當通過 IDLE 編輯器運行 tkinter 程序時,可以注釋掉 mainloop 調(diào)用。 這樣將立即回到 Shell 提示符并可與正在運行的應用程序交互。 請記得當在標準 Python 中運行時重新啟用 mainloop 調(diào)用。

在沒有子進程的情況下運行

在默認情況下,IDLE 是通過一個套接字在單獨的子進程中執(zhí)行用戶代碼,它將使用內(nèi)部的環(huán)回接口。 這個連接在外部不可見并且不會在互聯(lián)網(wǎng)上發(fā)送或接收數(shù)據(jù)。 如果防火墻仍然會報警,你完全可以忽略。

如果創(chuàng)建套接字連接的嘗試失敗,IDLE 將會通知你。 這樣的失敗可能是暫時性的,但是如果持續(xù)存在,問題可能是防火墻阻止了連接或某個系統(tǒng)配置錯誤。 在問題得到解決之前,可以使用 -n 命令行開關來運行 IDLE。

如果 IDLE 啟動時使用了 -n 命令行開關則它將在單個進程中運行并且將不再創(chuàng)建運行 RPC Python 執(zhí)行服務器的子進程。 這適用于 Python 無法在你的系統(tǒng)平臺上創(chuàng)建子進程或 RPC 套接字接口的情況。 但是,在這種模式下用戶代碼沒有與 IDLE 本身相隔離。 而且,當選擇 Run/Run Module (F5) 時運行環(huán)境也不會重啟。 如果你的代碼已被修改,你必須為受影響的模塊執(zhí)行 reload() 并重新導入特定的條目 (例如 from foo import baz) 才能讓修改生效。 出于這些原因,在可能的情況下最好還是使用默認的子進程來運行 IDLE。

3.4 版后已移除.

Help and Preferences

幫助源

Help 菜單項 “IDLE Help” 會顯示標準庫參考中 IDLE 一章的帶格式 HTML 版本。 這些內(nèi)容放在只讀的 tkinter 文本窗口中,與在瀏覽器中看到的內(nèi)容類似。 可使用鼠標滾輪、滾動條或上下方向鍵來瀏覽文本。 或是點擊 TOC (Table of Contents) 按鈕并在打開的選項框中選擇一個節(jié)標題。

Help 菜單項 “Python Docs” 會打開更豐富的幫助源,包括教程,通過 docs.python.org/x.y 來訪問,其中 ‘x.y’ 是當前運行的 Python 版本。 如果你的系統(tǒng)有此文檔的離線副本 (這可能是一個安裝選項),則將打開這個副本。

選定的 URL 可以使用配置 IDLE 對話框的 General 選項卡隨時在幫助菜單中添加或移除。

首選項設置

字體首選項、高亮、按鍵和通用首選項可通過 Option 菜單的配置 IDLE 項來修改。 非默認的用戶設置將保存在用戶家目錄下的 .idlerc 目錄中。 用戶配置文件錯誤導致的問題可通過編輯或刪除 .idlerc 中的一個或多個文件來解決。

在 Font 選項卡中,可以查看使用多種語言的多個字符的示例文本來了解字體或字號效果。 可以編輯示例文本來添加想要的其他字符。 請使用示例文本選擇等寬字體。 如果某些字符在 Shell 或編輯器中的顯示有問題,可以將它們添加到示例文本的開頭并嘗試改變字號和字體。

在 Highlights 和 Keys 選項卡中,可以選擇內(nèi)置或自定義的顏色主題和按鍵集合。 要將更新的內(nèi)置顏色主題或按鍵集合與舊版 IDLE 一起使用,可以將其保存為新的自定義主題或按鍵集合就將可在舊版 IDLE 中使用。

macOS 上的IDLE

在 System Preferences: Dock 中,可以將 “Prefer tabs when opening documents” 設為 “Always”。 但是該設置不能兼容 IDLE 所使用的 tk/tkinter GUI 框架,并會使得部分 IDLE 特性失效。

擴展

IDLE 可以包含擴展插件。 擴展插件的首選項可通過首選項對話框的 Extensions 選項卡來修改。 請查看 idlelib 目錄下 config-extensions.def 的開頭來了解詳情。 目前唯一的擴展插件是 zzdummy,它也是一個測試用的示例。

idlelib

Source code: Lib/idlelib


The Lib/idlelib package implements the IDLE application. See the rest of this page for how to use IDLE.

The files in idlelib are described in idlelib/README.txt. Access it either in idlelib or click Help => About IDLE on the IDLE menu. This file also maps IDLE menu items to the code that implements the item. Except for files listed under ‘Startup’, the idlelib code is ‘private’ in sense that feature changes can be backported (see PEP 434).


新聞名稱:創(chuàng)新互聯(lián)Python教程:IDLE
本文URL:http://m.5511xx.com/article/cdcophc.html