国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

在 PyCharm 中調(diào)試你的第一個 Python 應(yīng)用程序

2025-03-27 11:22 更新

找出問題的根源

還記得在上一個教程中,你創(chuàng)建并運行了 Car 腳本嗎?讓我們再和它玩一會兒。

在運行工具窗口中運行腳本,加速一次汽車,然后通過輸入相應(yīng)的命令進行兩次制動:

運行腳本

現(xiàn)在按 o 然后按 Enter 來顯示汽車的里程表:


運行腳本


腳本告訴我們汽車行駛了 0 公里!這是一個意外的結(jié)果,因為我們按了一次加速器,所以汽車應(yīng)該已經(jīng)行駛了一段距離。讓我們調(diào)試代碼以找出原因。


要開始調(diào)試,你必須先設(shè)置一個斷點。調(diào)試器將在執(zhí)行帶有斷點的行之前停止,這樣你就可以檢查程序的當前狀態(tài)。


汽車的里程表設(shè)置在第 15 行,所以讓我們在那里設(shè)置一個斷點。點擊行號旁邊的空白處:


添加斷點


接下來,點擊 main 子句旁邊的 app 圖標,然后選擇調(diào)試 'car'(Debug `car`)。


Debug 命令


PyCharm 開始調(diào)試會話并顯示調(diào)試工具窗口。


Debug tool 窗口


a 然后按 Enter 來加速汽車。調(diào)試器將執(zhí)行腳本并在斷點處停止。調(diào)試工具窗口的線程和變量標簽頁將打開。展開 self 以檢查變量的當前值:


檢查變量的當前值


點擊調(diào)試工具欄上的  app “單步跳過(Step Over)” 按鈕,以執(zhí)行帶有斷點的行。注意 ?里程表(?odometer?? 的值變?yōu)?5,第 16 行現(xiàn)在在編輯器中高亮顯示,因為它將是下一個要執(zhí)行的行:


單步執(zhí)行


現(xiàn)在點擊  繼續(xù)按鈕 “繼續(xù)(Resume)” 按鈕并切換到 Debug 調(diào)試工具窗口的控制臺標簽頁。通過按 b 然后按 Enter 來指示汽車制動?;氐骄€程和變量標簽頁并檢查變量。注意此時速度為 0。


檢查變量


再次點擊 繼續(xù)按鈕 “繼續(xù)” 按鈕并再次制動(b + Enter)?,F(xiàn)在,讓我們切換到線程和變量標簽頁并分析接下來會發(fā)生什么:


檢查變量的值


你可以看到,里程表 的值是 5,速度 的值是 -5。這就是為什么當我們恢復(fù)執(zhí)行時,里程表 將變?yōu)?0。你可以點擊工具欄上的  app 按鈕來確認這一點。

所以,意外結(jié)果的原因是 速度(speed) 變量的負值。

修復(fù)問題

為了避免再次遇到同樣的問題,讓我們更新 Carbrake 方法,使其不會將 速度 減少到負值。

選擇 brake 方法中的語句 self.speed -= 5,然后按 Ctrl + Alt + T(代碼 -> 包圍Surround with)。


環(huán)繞代碼


選擇 if 來為該語句添加條件。


PyCharm 創(chuàng)建了一個占位符 if 構(gòu)造,留下你來填充適當?shù)膬?nèi)容。


使用 if 語句進行替代的存根


輸入 self.speed >= 5。我們在代碼中指定了 brake 方法只有在 速度 大于或等于 5 時才扣除 5:

def brake(self):
    if self.speed >=5:
        self.speed -=5

那么速度低于 5 怎么辦?當你在現(xiàn)實生活中對一輛緩慢行駛的汽車進行制動時,它只是停下來。讓我們在代碼中指定這一點。


在方法中指定條件


brake 方法的最后一行后添加一行新代碼并開始輸入 el...。PyCharm 提示你插入 else。按 Enter 插入它,縮進將自動修復(fù):


https://resources.jetbrains.com/help/img/idea/2024.3/py_else_autocompletion.png


現(xiàn)在添加 self.speed = 0 以指定汽車應(yīng)該停止。以下是更新后的 brake 方法代碼:

def brake(self):
    if self.speed >=5:
        self.speed -=5
    else:
        self.speed =0

讓我們再次運行以檢查是否成功修復(fù)了問題。加速汽車,然后進行兩次制動,并檢查里程表:


修復(fù)問題后運行腳本


現(xiàn)在我們得到了預(yù)期的正確結(jié)果。


詳細調(diào)試

調(diào)試工具窗口由用于幀、變量和觀察的專用窗格以及顯示所有輸入和輸出信息的控制臺標簽頁組成。如果你想讓控制臺始終可見,可以將其拖到 PyCharm 窗口的邊緣之一。


單步調(diào)試

如果你想一行一行地查看代碼的執(zhí)行情況,無需在每一行都設(shè)置斷點,可以逐步執(zhí)行代碼。

讓我們看看在示例程序中逐步執(zhí)行是什么樣子。通過窗口頂部的運行小部件啟動或重新啟動調(diào)試器:


重新啟動調(diào)試器


在打開的調(diào)試器控制臺中,按 a 加速汽車。調(diào)試器將在斷點處停止。

我們可以使用逐步調(diào)試工具欄按鈕來選擇下一步在哪個行停止。


步進工具欄


例如,點擊單步跳過(Step Over)  app 按鈕,查看藍色標記移動到下一行代碼:


調(diào)試期間單步執(zhí)行


繼續(xù)點擊  app ,直到到達 action = input("What should I do? [A]ccelerate, [B]rake, " "show [O]dometer, or show average [S]peed?").upper()。

現(xiàn)在,如果你點擊單步進入(Step Into)app按鈕,你會看到調(diào)試器進入 parse.py 文件:


在調(diào)試期間單步執(zhí)行


但是,如果你繼續(xù)使用單步跳過  app ,你會看到你的應(yīng)用程序只是繼續(xù)下一個循環(huán):


調(diào)試:傳遞到下一個循環(huán)


如果你想專注于自己的代碼,使用單步進入我的代碼(Step Into My Code)python-ce按鈕。這樣你將避免進入庫類。

有關(guān)更多信息,請參考逐步調(diào)試工具欄和單步調(diào)試程序。


觀察

PyCharm 允許你觀察任何變量。只需在評估表達式或在線程和變量標簽頁下的工具欄下方的添加觀察字段中輸入要觀察的變量名稱。例如,my_car.time。這里提供代碼補全。然后點擊字段右側(cè)的。

然后轉(zhuǎn)到控制臺標簽頁并輸入任何命令,例如,b。


觀看完成


當你回到線程和變量標簽頁時,你會看到 my_car.time 的當前值:


在調(diào)試工具窗口中監(jiān)視變量


有關(guān)更多信息,請參考觀察。


內(nèi)聯(lián)調(diào)試

你可能已經(jīng)注意到 PyCharm 的另一個功能,它使查看代碼執(zhí)行情況變得更加容易:內(nèi)聯(lián)調(diào)試器。只要你按下任何斷點,PyCharm 就會在編輯器中顯示許多變量的值:


內(nèi)聯(lián)調(diào)試


此內(nèi)聯(lián)調(diào)試功能默認啟用。如果你沒有看到內(nèi)聯(lián)調(diào)試值,請檢查它是否在調(diào)試器設(shè)置中啟用。點擊調(diào)試器(Debugger)工具欄上的app,然后選擇調(diào)試器設(shè)置(Debugger Settings )。確保在編輯器中顯示變量值(Show Variable Values in Editor)已啟用。

內(nèi)聯(lián)顯示值


總結(jié)

所以,你已經(jīng)做到了!恭喜!讓我們回顧一下你在 PyCharm 的幫助下所做的事情:

  • 找出問題的根源
  • 設(shè)置斷點
  • 逐步執(zhí)行程序
  • 創(chuàng)建觀察
  • 評估表達式


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號