最全Pycharm教程(10)——Pycharm調試器總篇

  最全Pycharm教程(1)——定制外觀

  最全Pycharm教程(2)——代碼風格

  最全Pycharm教程(3)——代碼的調試、執行

  最全Pycharm教程(4)——有關Python解釋器的相關配置

  最全Pycharm教程(5)——Python快捷鍵相關設置

  最全Pycharm教程(6)——將Pycharm作為Vim編輯器使用

  最全Pycharm教程(7)——虛擬機VM的配置

  最全Pycharm教程(8)——Djangoproject的創建和管理

  最全Pycharm教程(9)——創建并執行一個主要的Python測試程序

  1、準備工作

  (1)Pycharm版本號為3.0或者更高版本號

  (2)至少安裝了一個Python解釋器而且已經正確配置

  (3)已經創建了一個Pythonproject

  2、主要內容

  介紹怎樣通過Pycharm來調試腳本文件,以及各個工具button的作用等等,至于Python編程方法,請參見Python documentation。

  3、待復習知識

  為了完畢本篇教程的內容,須要用到前面的兩個重要知識點:

  (1)Run/debug配置文件的相關知識

  (2)斷點的相關知識

  4、Run/debug 配置知識

  每當你通過Pycharm來執行或者調試一個腳本文件時,都須要一個特殊的文件來記錄腳本的名稱、工作文件夾以及其它的重要調試信息。

Pycharm已經針對特定模式預先創建好了配置文件。避免我們手動去創建。

  每次你單擊執行或者調試button時(或者通過快捷菜單執行同樣的操作)。我們實際上都是在當前工作模式中載入了相應的配置文件。

詳見product documentation。

  5、斷點

  一個斷點標記了一個代碼行。當Pycharm執行到該行代碼時會將程序臨時掛起。Pycharm提供了幾種形式的斷點?types of breakpoints,其圖標?icon各不同樣。詳見?product documentation中的Breakpoints tutorial。

  6、實例

  在你的Pythonproject中,創建一個新的Python文件,命名為ThreadSample.py,然后輸入下面代碼:

  7、設置斷點

  首先,在源代碼中設置斷點。通過單擊代碼左側的空白槽來在相應位置生成斷點:

  8、開始調試

  選擇?run/debug configuration "ThreadSample",然后按下Shift+F9(或者單擊工具欄中的綠色蜘蛛形式的button),調試開始。并在第一個斷點處停止:

  斷點所在的行變為藍色,說明Pycharm已經擊中了這個斷點,但尚未運行這行代碼。

  9、更改調試窗體的布局

  此時Pycharm進入調試界面模式Debug tool window,各個控件的詳細功能詳見know how to use this tool window。

  增加你并不喜歡當前的默認布局。比如你希望將調試器輸出窗體作為一個獨立的窗體顯示以便更方便的觀察當前的調試狀態,你能夠對布局進行個性化定制。

  首先,我們先把調試工具窗體獨立出來。僅僅須要右擊窗體的標題欄。然后選擇Floating mode

  接下來將控制臺窗體移動成為一個獨立的窗體,僅僅須要拖動控制臺窗體將其拖出測試窗體就可以:

  能夠通過單擊工具欄上的button來恢復到默認布局。

  很多其它信息請參見PyCharm Tool Windows和Moving tabs and area

  10、加入一個變量查看器

  接下來我們介紹怎樣在調試過程中觀察變量的狀態。我們須要對其設置一個查看器。

在Watches窗體中,單擊綠色的加號。輸入期望查看的變量名稱,比如這里輸入delay。然后回車。當然你也能夠採用第二種方式:在編輯窗體中右擊變量名,在快捷菜單中選擇Add to watches

  此時觀察Watches窗體。發現delay變量眼下尚沒有定義:

  稍后你將會看到怎樣對這個變量進行負值,以及其在watches窗體中的變化。接下來我們為get_thread_name()函數設置一個查看器作為練習。

  11、瀏覽幀

  此時你能看到一個名為MainThread的進程,當中包括三幀。單擊每一幀來顯示其變量狀態以及相相應的py文件。同一時候會對有問題的代碼行以高亮顯示:

  12、簡單的調試

  在每一個斷點出都單擊button來時程序繼續執行,觀察控制臺的腳本輸出:

  13、步進式腳本調試

  讓我們對當前腳本進行進一步的調試。單擊重新啟動調試進程,程序再次執行到第一個斷點處并暫停。

  在調試窗體的頂端。你會看到一列包括步進調試按鈕的工具欄?stepping buttons。

  單擊,或者按下F8,你會發現藍色標記移動到了下一行:

  與此同一時候,當你暫停了腳本運行時(單擊button),你能看到高亮表示的函數print_time(),你能夠選擇當中的不論什么一個進程,并觀察變量的變化:

  14、執行到當前光標處  

  假如你不想增加斷點。但仍希望代碼可以調試執行到某一指定的代碼行。怎樣操作?

  返回調試界面的第二個斷點處,在相應行插入輸入光標。

  單擊button,或者按下Alt+F9快捷鍵,該行代碼變為高亮顯示:

  15、怎樣調用Debug命令

  值得一提的是全部的調試操作不只能夠通過調試工具欄的相應button來完畢,還能夠通過主菜單中Run菜單下的命令來實現,以及相關的快捷菜單項。

以下給出一些經常使用的調試菜單命令及其相應的快捷鍵列表:

  很多其它控件描寫敘述參見Debug tool window。

轉載于:https://www.cnblogs.com/claireyuancy/p/6935234.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372045.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372045.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372045.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Looper.prepare()和Looper.loop()

什么時候需要 Looper Looper用于封裝了android線程中的消息循環,默認情況下一個線程是不存在消息循環(message loop)的,需要調用Looper.prepare()來給線程創建一個消息循環,調用Looper.loop()來使消息循環起作用&#…

超速問題的c語言編程,超速行駛問題--精選.doc

超速行駛問題摘要本文主要研究的是探討驅車從始發地至目的地的最短時間路徑問題和最少花費問題,以及在超速情況下的最短時間和最少花費問題。首先,從整個題目的兩個問題入手,發現兩個問題都是優化問題,具有一定的聯系。然后針對第…

重新查看Play Framework發布的值

與Play Framework 2.0一起使用發布的值而不定義表單映射,可能不像Play 1.x那樣明顯,這就是為什么我要編寫此快速備忘單。 對于此快速示例,讓我們定義以下視圖: app / views / index.scala.html (message: String)message: messa…

matlab 微積分

符號變量,symbolic variable 1. 高階導數 高階導數的計算,當然可以用手工的方式,但顯然這種機械重復的推導,更適用于計算機的計算方式: f(x)sinxx24x3?d4fdx4>> syms x; >> f sin(x) / (x^24*x3); >&…

如何查看Ubuntu版本,以及Linux內核版本??

查看Ubuntu版本: 方法一: cat /etc/issue 方法二: sudo lsb_release -a 查看內核版本: uname -r 轉載于:https://www.cnblogs.com/tanrong/p/6937749.html

c語言編碼風格,講嵌入式C語言編碼風格.ppt

講嵌入式C語言編碼風格目 錄 簡介及說明 語言規則 1.基礎 2.數據 3.說明與表達式 4.函數 5.內存及資源 6.源文件 風格指導 7.程序書寫 8.命名 9.文檔 簡介及說明 正確性 易維護性 易移植性 代碼的高效性 語言規則——基礎 編寫清晰表達設計思路和意圖的代碼 針對易讀來優化代碼…

使用Gradle引導舊式Ant構建

Gradle提供了幾種不同的方式來利用您現有的對Ant的投資,包括積累的知識和您已經放入構建文件中的時間。 這可以極大地方便將Ant生成的項目移植到Gradle的過程,并為您提供逐步進行此操作的路徑。 Gradle文檔在描述如何在Gradle構建腳本中使用Ant方面做得很…

實現chrome擴展啟動本地進程 - 補充

實現chrome擴展啟動本地進程 - 補充 標簽: chrome擴展啟動本地程序訪問本地磁盤2014-10-17 11:42 6753人閱讀 評論(17) 收藏 舉報分類:Chrome Plugin版權聲明:本文為博主原創文章,未經博主允許不得轉載。 示例 主要包含如下部分 c…

SpringMVC整合MongoDB

首先&#xff0c;在pom文件中新增spring-data-mongodb的依賴&#xff1a; <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.1.RELEASE</version>&l…

單路電壓表c語言編程,用AT89C51單片機制作的數字電壓表

此數字電壓表&#xff0c;利用A/D轉換原理將被測模擬量轉換成數字量&#xff0c;并通過控制系統用數字方式顯示測量結果。本設計采用AT89C51單片機&#xff0c;ADC0809進行模/數轉換&#xff0c;能夠測量8路0&#xff5e;5V的輸入電壓值&#xff0c;可用四位LED數碼管輪流或單路…

ZK的實際應用:MVVM –加載和渲染數據

先前的文章簡要介紹了RIA框架ZK&#xff0c;以及它CSS Selector啟發式控制器機制如何通過使在控制器類中引用UI組件的任務變得相對靈活來減輕UI更改所帶來的一些負擔。 然后&#xff0c;我們在上一篇文章中探討了ZK中的MVVM模式如何允許單個ViewModel提供不同的視圖。 這篇文章…

搭建一個簡單的mybatis框架

一、Mybatis介紹 MyBatis是一個支持普通SQL查詢&#xff0c;存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或注解用于配置和原始映射&#xff0c;將接口和Java的POJO&#xff08;Pla…

定時操作范例

1 package timetask.demo;2 3 import java.text.SimpleDateFormat;4 import java.util.Date;5 import java.util.Timer;6 import java.util.TimerTask;7 8 /*9 * time類 是一個線程實施&#xff0c;可以用來實現在某一個時間或者某一個時間段后安排某一個任務執行一次或者定期…

c語言空格符 r t,c語言中、\t \r \n 和空格什么意思

具體意思&#xff1a;都是轉義字符&#xff0c;空格就是單純的空格&#xff0c;輸入時可以輸入空格\t 跳格 \r 回車 \n 換行\\ 反斜杠 \a 警告 \b 退格 \f 換頁 \v 垂直跳格 \ddd ddd 是 1、2 或 3 位八進制數字。轉義字符串(Escap…

如何在運行時更改日志記錄級別

在運行時中更改日志記錄級別很重要&#xff0c;這主要在生產環境中非常重要&#xff0c;在生產環境中&#xff0c;您可能希望在有限的時間內進行調試日志記錄。 好了&#xff0c;更改根記錄器非常簡單–假設您有一個具有所需記錄級別的輸入參數&#xff0c;只需獲取根記錄器并…

擴展中國剩余定理

轉自&#xff1a;http://blog.csdn.net/clove_unique/article/details/54571216 對于兩個方程$x\equiv c_1\pmod {m_1}$$x\equiv c_2\pmod {m_2}$將其合并為一個方程&#xff0c;有解條件為$(m1,m2)|(c2-c1)$$m\frac{m1m2}{(m1,m2)}$$c(inv(\frac{m1}{(m1,m2)},\frac{m2}{(m1,m…

易語言添加ctrl c鍵,易語言操作快捷鍵匯總

以下是關于易語言的快捷鍵內容&#xff1a;預覽被設計窗口 CtrlEnter運行 F5終止運行 CtrlF5編譯 F7菜單編輯器 CtrlE即時幫助 F1在編輯窗口之間跳轉。按下 Ctrl 鍵后不放&#xff0c;然后反復按 Tab 鍵可以在目前所有的編輯窗口之間跳轉&#xff1b;按下 Ctrl 鍵后同時按下 Ta…

在代理類中引用動態代理

在Stackoverflow中有一個有趣的問題 &#xff0c;關于Spring Bean如何獲??得對由Spring創建的代理的引用以處理事務&#xff0c;Spring AOP&#xff0c;緩存&#xff0c;異步流等。需要對代理的引用&#xff0c;因為如果存在對自身的調用通過代理bean&#xff0c;此調用將完全…

Array的用法總結-swift

Araay是有序的數據集&#xff0c;在OC中分為不可變數組NSArray和可變數組NSMutableArray&#xff0c;在swift中只有常量和變量兩種類型&#xff0c;聲明成變量那就可以說明是可變的了&#xff01; 學習時的具體的用法總結成如下的代碼&#xff1a; //數組var arrInts [Int]()/…

Frame URl

http://www.zi-han.net/theme/hplus/?v4.1 http://webapplayers.com/inspinia_admin-v2.5/ http://baijunyao.com/article/67 轉載于:https://www.cnblogs.com/shijiaoyun/p/6065755.html