翻譯|使用教程|編輯:龔雪|2018-08-24 15:06:29.000|閱讀 21253 次
概述:這是初步認(rèn)識PyCharm的第二篇教程——調(diào)試您的第一個Python應(yīng)用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Jetbrains交流群現(xiàn)已開通,QQ搜索群號786598704即可加入!
(注:Pycharm為jetbrains旗下Python開發(fā)工具)
PyCharm報告運(yùn)行時錯誤:a ZeroDivisionError。深入研究一下代碼,找出問題所在。這里可以使用PyCharm調(diào)試器來查看代碼中發(fā)生了什么。要開始調(diào)試,您必須先設(shè)置一些斷點(diǎn)。要創(chuàng)建斷點(diǎn),只需單擊左側(cè)gutter:
接下來,單擊左側(cè)gutter中的播放圖標(biāo),在main旁邊,然后選擇Debug 'Car'。 PyCharm啟動調(diào)試會話并顯示調(diào)試工具窗口。
在Console選項中,輸入S:
如您所見,斷點(diǎn)標(biāo)記變?yōu)樗{(lán)色。這意味著已經(jīng)達(dá)到了斷點(diǎn); 請注意,此時尚未執(zhí)行突出顯示的代碼行。
單擊播放圖標(biāo)以恢復(fù)腳本執(zhí)行。現(xiàn)在另一個斷點(diǎn)也出現(xiàn)了:默認(rèn)情況下,PyCharm將停止代碼中未捕獲的任何異常,并且它將顯示帶閃電的斷點(diǎn)圖標(biāo)。
控制臺還會顯示錯誤消息。您還可以在調(diào)試器中看到該值self.time等于零:
為避免再次遇到同樣的問題,現(xiàn)在添加一個if語句來檢查時間是否等于零。為此,在方法average_speed中選擇語句return self.odometer / self.time,然后按Ctrl + Alt + T(Code | Surround with):
PyCharm創(chuàng)建一個stub if構(gòu)造,讓你完成填充正確內(nèi)容的任務(wù)。編輯后,得到以下內(nèi)容:
“調(diào)試”工具窗口顯示框架, 變量和監(jiān)視的專用窗格以及控制臺,其中顯示所有輸入和輸出信息。如果希望控制臺始終可見,可以將其拖動到PyCharm窗口的一個邊緣。
如果您希望逐行查看代碼的作用,則無需在每一行上設(shè)置斷點(diǎn),您可以單步執(zhí)行代碼。看一下示例程序是什么樣子:單擊播放圖標(biāo),轉(zhuǎn)到控制臺詢問汽車的平均速度(類型'S'),可以看到達(dá)到斷點(diǎn)。這時可以使用Stepping工具欄按鈕選擇想要在下一行停止的行。
例如,單擊Step Over 按鈕并看到藍(lán)色標(biāo)記移動到下一行代碼:
如果單擊Step Into按鈕,您將看到action = input("What should I do? [A]ccelerate, [B]rake, " "show [O]dometer, or show average [S]peed?").upper() 調(diào)試器進(jìn)入文件parse.py:
但是,如果繼續(xù)使用Step Over 按鈕,您將看到您的應(yīng)用程序只是傳遞到下一個循環(huán):
如果您想專注于自己的代碼,請使用Step Into My Code按鈕 - 這樣您就可以避免進(jìn)入庫類。
PyCharm允許您觀察任何變量。只需要單擊Watches選項的工具欄中的+,然后輸入你想要觀看的變量的名稱-將其設(shè)置為 my_car.time。請注意,此處可以使用代碼完成:
首先,您看到時間等于nil - 這意味著該變量尚未定義:
但是,當(dāng)程序執(zhí)行繼續(xù)到定義變量的作用域時,監(jiān)視器將獲得以下視圖:
您可能已經(jīng)注意到另一個PyCharm功能,可以輕松查看代碼正在執(zhí)行的操作: 內(nèi)聯(lián)調(diào)試器。一旦你遇到任何斷點(diǎn),PyCharm就會在編輯器中向你顯示許多變量的值:
默認(rèn)情況下啟用此內(nèi)聯(lián)調(diào)試功能。如果您沒有看到內(nèi)聯(lián)調(diào)試值,請使用調(diào)試工具窗口中的設(shè)置圖標(biāo)檢查它是否已啟用::
最后,您可以隨時評估任何表達(dá)式。
實(shí)際上,你可以用watch看到同樣的東西。使用評估表達(dá)式,您可以執(zhí)行使用watch無法執(zhí)行的操作:您可以更改內(nèi)容。例如,如果輸入所需的里程表值50,然后繼續(xù)單步執(zhí)行腳本,您將獲得以下信息:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都