Python初學者必備技能,使用Python進行debug

来源:https://www.cnblogs.com/hahaa/archive/2023/03/16/17222692.html
-Advertisement-
Play Games

哈嘍兄弟們,今天來分享一下,Python初學者必須要學會的技能,Python進行debug操作。 本文用的測試代碼: from torchvision import transforms from torchvision.datasets import FashionMNIST import os ...


哈嘍兄弟們,今天來分享一下,Python初學者必須要學會的技能,Python進行debug操作。

本文用的測試代碼:

from torchvision import transforms
from torchvision.datasets import FashionMNIST
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
# 對於剛學Python的小伙伴,我給大家準備了2023最新的Python學習資料
# 我都打包好放在這個q裙了 708525271
# 直接加它領取

#數據集準備
train_data = FashionMNIST(
    root = "./data/FashionMNIST",
    train = True,
    transform = transforms.ToTensor(),
    download = True #如果沒下載數據,就下載數據;如果已經下載好,就換為False
)
test_data = FashionMNIST(
    root = "./data/FashionMNIST",
    train = False,
    transform = transforms.ToTensor(),
    download = True #如果沒下載數據,就下載數據;如果已經下載好,就換為False
)

train_data_x=train_data.data
train_data_y=train_data.targets
test_data_x=test_data.data
test_data_y=test_data.targets

print(train_data_x.shape)
print(train_data_y.shape)
print(type(train_data_x))
print(type(train_data_y))
print(test_data_x.shape)
print(test_data_y.shape)

def function1(x):
    for i in range(x):
        print(i)
function1(7)

 

一、debug環境介紹

點擊這個爬蟲就可開始debug

在debug前我們需要設置斷點:(設置幾個都行)

進入debug後,左下角:

1)debugger裡面可以看到存在的變數:

2)console裡面可以我們一步步調試的過程,輸出的結果會列印在裡面:

二、debug按鈕介紹

 

 

分別是
1)step over 快捷鍵:F8
2)step into 快捷鍵:F7
3)step into my code 快捷鍵: alt+shift+F7
4) step out 快捷鍵: shift+F8
2.1、step into:單步執行(遇到函數也是單步)

註意看藍色的線變化(藍色的線,代表即將被debug,但是還沒有debug到)

 

 

 

 

 

 剛我debug了兩次,結果如下:

 

 

step into 遇到進了函數也是單步(以我們這裡定義的迴圈列印函數為例):

 

 

 

 

2.2、step over:單步執行(遇到函數,全部運行)

這個相比step over 就是函數里執行的區別:(step over 是直接執行完)

 

 

2.3、step into my code:(直接跳到下一個斷點)

這個很好理解了,這裡我有三個斷點,所以會debug三次,然後結束:

 

 

 

 

 

 

 

2.4、step out : 執行完剩下的函數,並跳到上一層函數

就是之前在函數內部單步調試時,用step out 能一下執行完,返回到上一層函數。

 

 

 

 用了之後,整個函數直接執行完,但進程未結束。

 

 

看藍色的線,返回到了上一層函數

   

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 進入官網 Dcat Admin - Php後臺開發框架 這裡要選擇1.x 下麵來安裝框架 安裝完laravel之後,需要修改.env文件,設置資料庫鏈接設置正確 安裝 dcat-admin composer require dcat/laravel-admin 然後運行下麵的命令來發佈資源: php ...
  • 1.系統簡介 需求:進入系統顯示系統功能界面,功能如下: 1、添加學員 2、刪除學員 3、修改學員信息 4、查詢學員信息 5、顯示所有學員信息 6、退出系統 系統共6個功能,用戶根據自己需求選取。 2.步驟分析 顯示功能界面 用戶輸入功能序號 根據用戶輸入的功能序號,執行不同的功能(函數) 定義函數 ...
  • 大數據時代,各行各業對數據採集的需求日益增多,網路爬蟲的運用也更為廣泛,越來越多的人開始學習網路爬蟲這項技術,K哥爬蟲此前已經推出不少爬蟲進階、逆向相關文章,為實現從易到難全方位覆蓋,特設【0基礎學爬蟲】專欄,幫助小白快速入門爬蟲,本期為抓包工具的使用。 抓包工具概述 抓包工具,顧名思義,就是抓取網 ...
  • 緩存擊穿是指緩存中沒有的數據,而查詢非常頻繁的數據,導致大量的請求落到了資料庫上,因此很容易導致資料庫連接數暴增,甚至導致宕機。 下麵是 PHP 解決緩存擊穿問題的一般解決方案: // 獲取 Key $key = 'my_key'; // 根據 Key 從 Redis 中獲取數據 $data = $ ...
  • 自定義 Spring 通用日誌註解 1. 註解@Metrics @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.TYPE}) public @interface Metrics { /** * ...
  • 面向對象設計與構造第一單元 問題:表達式的化簡 表達式中僅含有$x,y,z$三種未知數 表達式僅含有$+,-,*,**,\sin,\cos,dx,dy,dx$幾種運算 - $dx,dy,dz$分別表示對$x$求導,對$y$求導,對$z$求導。 - 表示乘方,例如$23=2^3=8$ 包含若幹自定義函 ...
  • SpringBoot實現國際化中英文翻譯 配置IDEA 1.設置編碼為UTF-8 2.在resources目錄下創建 i18n 文件夾 internationalization簡寫 ​ 在文件夾中創建配置文件login.properties ​ 再創建login_zh_CN.properties 配 ...
  • Tomcat基本使用 什麼是Web伺服器 web伺服器的定義 其實並沒有標准定義,一般認為Web伺服器一般指網站伺服器,是指駐留於網際網路上某種類型電腦的程式,可以向瀏覽器等Web客戶端提供文檔,也可以放置網站文件,讓全世界瀏覽;可以放置數據文件,讓全世界下載。 Web伺服器的特點 伺服器是一種被動 ...
一周排行
    -Advertisement-
    Play Games
  • 1、預覽地址:http://139.155.137.144:9012 2、qq群:801913255 一、前言 隨著網路的發展,企業對於信息系統數據的保密工作愈發重視,不同身份、角色對於數據的訪問許可權都應該大相徑庭。 列如 1、不同登錄人員對一個數據列表的可見度是不一樣的,如數據列、數據行、數據按鈕 ...
  • 前言 上一篇文章寫瞭如何使用RabbitMQ做個簡單的發送郵件項目,然後評論也是比較多,也是準備去學習一下如何確保RabbitMQ的消息可靠性,但是由於時間原因,先來說說設計模式中的簡單工廠模式吧! 在瞭解簡單工廠模式之前,我們要知道C#是一款面向對象的高級程式語言。它有3大特性,封裝、繼承、多態。 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
  • 創建一個webapi項目做測試使用。 創建新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等 創建一個Http請求幫助類以及方法,用於獲取指定URL的信息 使用http請求訪問指定url,先運行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json數據。我們主要解析 大事記 部 ...
  • 最近在不少自媒體上看到有關.NET與C#的資訊與評價,感覺大家對.NET與C#還是不太瞭解,尤其是對2016年6月發佈的跨平臺.NET Core 1.0,更是知之甚少。在考慮一番之後,還是決定寫點東西總結一下,也回顧一下.NET的發展歷史。 首先,你沒看錯,.NET是跨平臺的,可以在Windows、 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 添加節點(nodes) 通過上一篇我們已經創建好了編輯器實例現在我們為編輯器添加一個節點 添加model和viewmode ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...
  • 類型檢查和轉換:當你需要檢查對象是否為特定類型,並且希望在同一時間內將其轉換為那個類型時,模式匹配提供了一種更簡潔的方式來完成這一任務,避免了使用傳統的as和is操作符後還需要進行額外的null檢查。 複雜條件邏輯:在處理複雜的條件邏輯時,特別是涉及到多個條件和類型的情況下,使用模式匹配可以使代碼更 ...
  • 在日常開發中,我們經常需要和文件打交道,特別是桌面開發,有時候就會需要載入大批量的文件,而且可能還會存在部分文件缺失的情況,那麼如何才能快速的判斷文件是否存在呢?如果處理不當的,且文件數量比較多的時候,可能會造成卡頓等情況,進而影響程式的使用體驗。今天就以一個簡單的小例子,簡述兩種不同的判斷文件是否... ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...