導航:首頁 > 編程語言 > pythondebug變數

pythondebug變數

發布時間:2022-05-11 19:26:28

python 直接觀察變數數值

使用pydevdebug的時候就可以觀察變數啊,就是右上角的那個窗口。

② Python有什麼方法可以改變運行中程序的某個變數而不中斷執行

debug時候 可以監視變數,監視表達式,
我理解應該是沒辦法改變中間的值讓程序繼續下去的。
你只能在代碼里完成你想要的中間改變,想想看,如果一個程序允許你改變中間過程,那麼編譯器還怎麼幫你優化流程

③ Python基本語法都有哪些

1.關於編碼:
默認情況下,Python 3 源碼文件以 UTF-8 編碼,所有字元串都是 unicode 字元串。 當然你也可以為源碼文件指定不同的編碼:
# -*- coding: cp-1252 -*-
2.標識符:
第一個字元必須是字母表中字母或下劃線,其他的部分由字母、數字和下劃線組成。
標識符對大小寫敏感。
在 Python 3 中,可以用中文作為變數名,非 ASCII 標識符也是允許的了。
3.保留字:
保留字即關鍵字,我們不能把它們用作任何標識符名稱。
Python 的標准庫提供了一個 keyword 模塊,可以輸出當前版本的所有關鍵字:
代碼:
import keyword
keyword.kwlist
結果:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4.關於注釋:
單行注釋以 # 開頭
多行注釋可以用多個 # 號,還有 ''' 和 """
5.縮進與多行語句:
Python最具特色的就是使用縮進來表示代碼塊,不需要使用大括弧 {} 。
縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數
Python 通常是一行寫完一條語句,但如果語句很長,我們可以使用反斜杠(\)來實現多行語句,例如:
代碼:total = item_one + \
item_two + \
item_three
在 [], {}, 或 () 中的多行語句,不需要使用反斜杠(\),例如:
代碼:total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
6.數字(Number)類型:
Python中數字有四種類型:整數、布爾型、浮點數和復數。
int (整數), 如 1, 只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long。
bool (布爾), 如 True。
float (浮點數), 如 1.23、3E-2
complex (復數), 如 1 + 2j、 1.1 + 2.2j
7.字元串:
python中單引號和雙引號使用完全相同。
使用三引號('''或""")可以指定一個多行字元串。
轉義符 '\'
反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。。 如 r"this is a line with \n" 則\n會顯示,並不是換行。
按字面意義級聯字元串,如"this " "is " "string"會被自動轉換為this is string。
字元串可以用 + 運算符連接在一起,用 * 運算符重復。
Python 中的字元串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始。
Python中的字元串不能改變。
Python 沒有單獨的字元類型,一個字元就是長度為 1 的字元串。
字元串的截取的語法格式如下:變數[頭下標:尾下標:步長]
代碼示例:
#!/usr/bin/python3
str='Runoob'
print(str) # 輸出字元串
print(str[0:-1]) # 輸出第一個到倒數第二個的所有字元
print(str[0]) # 輸出字元串第一個字元
print(str[2:5]) # 輸出從第三個開始到第五個的字元
print(str[2:]) # 輸出從第三個開始後的所有字元
print(str * 2) # 輸出字元串兩次
print(str + '你好') # 連接字元串
print('hello\nrunoob') # 使用反斜杠(\)+n轉義特殊字元
print(r'hello\nrunoob') # 在字元串前面添加一個 r,表示原始字元串,不會發生轉義
8.空行:
函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數入口之間也用一行空行分隔,以突出函數入口的開始。
空行與代碼縮進不同,空行並不是Python語法的一部分。書寫時不插入空行,Python解釋器運行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的代碼,便於日後代碼的維護或重構。
記住:空行也是程序代碼的一部分。
9.等待用戶輸入input:
執行下面的程序在按回車鍵後就會等待用戶輸入:
input("\n\n按下 enter 鍵後退出。")
以上代碼中 ,"\n\n"在結果輸出前會輸出兩個新的空行。一旦用戶按下 enter 鍵時,程序將退出。
10.同一行顯示多條語句:
Python可以在同一行中使用多條語句,語句之間使用分號(;)分割,以下是一個簡單的實例:
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
11.代碼組:
縮進相同的一組語句構成一個代碼塊,我們稱之代碼組。
像if、while、def和class這樣的復合語句,首行以關鍵字開始,以冒號( : )結束,該行之後的一行或多行代碼構成代碼組。
我們將首行及後面的代碼組稱為一個子句(clause)。
12.Print輸出:
Print 輸出
print 默認輸出是換行的,如果要實現不換行需要在變數末尾加上 end="":
代碼:
x="a"
y="b"
# 換行輸出
print( x )
print( y )
# 不換行輸出
print( x, end=" " )
print( y, end=" " )
13.import 與 from...import
在 python 用 import 或者 from...import 來導入相應的模塊。
將整個模塊(somemole)導入,格式為: import somemole
從某個模塊中導入某個函數,格式為: from somemole import somefunction
從某個模塊中導入多個函數,格式為: from somemole import firstfunc, secondfunc, thirdfunc
將某個模塊中的全部函數導入,格式為: from somemole import *
代碼:
導入 sys 模塊
import sys
print ('命令行參數為:')
for i in sys.argv:
print (i)
print ('\n python 路徑為',sys.path)
導入 sys 模塊的 argv,path 成員
from sys import argv,path # 導入特定的成員
print('path:',path) # 因為已經導入path成員,所以此處引用時不需要加sys.path
14.命令行參數:
很多程序可以執行一些操作來查看一些基本信息,Python可以使用-h參數查看各參數幫助信息:
代碼:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
15.一個有用的函數:help( )
調用 python 的 help() 函數可以列印輸出一個函數的文檔字元串:
# 如下實例,查看 max 內置函數的參數列表和規范的文檔
>>> help(max)
……顯示幫助信息…… 按下 : q 兩個按鍵即退出說明文檔
如果僅僅想得到文檔字元串:
>>> print(max.__doc__) # 注意,doc的前後分別是兩個下劃線
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments, return the largest argument.

④ 怎樣在mac設置python的環境變數

Python設置環境變數的具體方法:
在系統變數里找到PATH,雙擊PATH,在結尾加上 ";C:Python25"(不要引號)確定即可。接下來:運行->cmd,在命令行窗口中輸入python,即可運行。

在命令行窗口中輸入python文章中Python設置環境變數的分類:Python編程

  1. #FileName:setDbgServerBridge.py

  2. import os

  3. path=os.environ["HOME"] + "/lib"

  4. if os.path.exists(path)==False :

  5. os.makedirs(path)

以上就是對Python設置環境變數的具體方法。

⑤ python需要設置哪些環境變數我只知道一個PYTHONHOME指向安裝目錄。

1、首先,右鍵點擊-計算機(此電腦),點擊進入屬性,如圖所示。

⑥ 如何進行Python 調試器調試

本文首先介紹一下 Python 調試器 的歷史,總結了Python的強大之處和不足並且指出了與其他腳本語言,相比,以及Python語言與其他語言的優勢所在,下面進行學習介紹說明。 PyDev 就能顯示出一個超鏈接,這樣您可以在導入庫或函數的源代碼之間導航。請注意,為了在您自己的源代碼中跨模塊使用該特性(從一個模塊鏈接到另一個模塊),必須修改PYTHONPATH 環境變數。 在其中加入這些模塊,這樣 PyDev 就可以找到它們了。 Python 調試器 是最近才加入 PyDev 插件中的。要使用調試器,可在Python編輯器中想中斷的代碼行的左側點擊,設置斷點。 我在 feedparser.py 的 1830 行處設置了斷點。然後在 Navigator 視圖中選擇這個Python模塊,點擊右鍵,選擇「PythonDebug...」。這時將顯示與前面相似的一個啟動配置窗口。點擊 Debug 進入 Debug 視角,同時啟動調試器。 左上角的 Debug 視圖顯示當前正在執行的進程和線程,右上角的 Variables 視圖顯示當前運行域中的所有變數。 Python編輯器會顯示調試器目前停在哪條語句上,同時所有的輸出信息都顯示與 Console 視圖中。調試器可以通過 Debug 視圖底部的按鈕或 Run 菜單進行控制。 要運行剛剛在 Eclipse 中創建的啟動器,可選擇 Run External ToolspythonInterpreter。 Python解釋器的輸出顯示在 Console 視圖中。 Console 中可輸入 Python 調試器 並執行,就像從命令行中執行Python一樣。為導入並在交互模式下使用模塊,您需要將模塊的位置增加到PYTHONPATH 環境變數中。 Python會在它需要的時候自動編譯模塊。這意味著 Python 調試器 通常不必顯式地對模塊進行編輯。即便如此。 有時候手工編譯Python代碼還是很有用的,同時,構建和部署過程中還有很多其他方面的內容可以自動化實現。這也正是構建工具的用武之地。 我將著重介紹來自 Java 編程世界中的 Apache Ant,這個工具可大量應用在Python開發中。Apache Ant 是 Java 編程領域內事實上的標准構建工具。 它更加輕便,與 Java 技術結合得更好,可用於替代其他的構建工具。Ant 可以在支持 Java 編程語言的任何一種平台上運行。盡管我們需要的大多數構建特性 Ant 都已經提供了,但如果要將 Ant 用做Python構建工具,還是需要有一些關鍵的與Python相關的特性。 我已經開發了若干定製的 Ant 插件(用 Ant 的行話講叫做 task),可提供構建Python時需要的特定於Python的特性。 Ant 用 XML 作為描述構建的格式。build 文件組織為需要執行的目標。每一個目標都可能依賴於其他的目標。 Ant 將根據您所請求執行的目標,以及一組依賴目標,來執行任何需要的目標。每一個目標都可能包含任意數量的 Ant 任務,而由 Ant 任務實際執行目標的工作。Ant 有很多內置的任務,可以完成諸如編譯 Java 代碼、生成文檔、操縱文件和目錄,同時第三方又提供了很多附加的任務。 我將通過為 feedparser 項目創建構建腳本來介紹 Ant 構建腳本和PythonAnt 任務的基礎知識。為了使用PythonAnt 任務。您需要下載並安裝包含這些任務的 Java 庫。首先,從 參考資料 一節中列出的 URL 中下載 Python 調試器 任務庫(pyAntTasks.jar)。 然後,將 JAR 文件拷貝到 Eclipse 的 Ant 插件下的 lib 目錄中。這應該是 Eclipse 安裝目錄下形如 plugins/org.apache.ant_1.5.3 的子目錄。 PythonAnt 任務庫拷貝完畢之後,必須在 Eclipse 中啟用庫。選擇 Window Preferences,然後選擇 Ant Runtime。 將 Ant Home Entries 展開源碼天空 ,其中可看到 Eclipse 使用的庫(JAR 文件)列表。選擇「 Add JAR」,然後從 Eclipse Ant 插件的 lib 目錄中選擇PythonAnt JAR 文件,就可以將剛剛拷貝的PythonAnt JAR 文件加入庫列表中。 您現在應該能夠創建和運行包含Python任務的 Ant 構建腳本了。下面進入構建腳本內部!

⑦ pycharm python調試過程變數觀察問題

show values inline

⑧ 調試python代碼的方法有哪些

本文討論在沒有方便的IDE工具可用的情況下,使用pdb調試python程序

源碼例子

例如,有模擬稅收計算的程序:

#!/usr/bin/python
def debug_demo(val):
if val <= 1600 :
print "level 1"
print 0
elif val <= 3500 :
print "level 2"
print (val - 1600) * 0.05
elif val <= 6500 :
print "level 3"
print (val - 3500) * 0.10 + (3500-1600) * 0.05
else:
print "level 4"
print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
#~def debug_demo
if __name__ == "__main__":
debug_demo(4500)

debug_demo函數計算4500的入賬所需的稅收。

如何調試?

1.加入斷點

在需要插入斷點的地方,加入紅色部分代碼:如果_DEBUG值為True,則在該處開始調試(加入_DEBUG的原因是為了方便打開/關閉調試)。

#!/usr/bin/python
_DEBUG=True
def debug_demo(val):
if _DEBUG == True:
import pdb
pdb.set_trace()
if val <= 1600 :
print "level 1"
print 0
elif val <= 3500 :
print "level 2"
print (val - 1600) * 0.05
elif val <= 6500 :
print "level 3"
print (val - 3500) * 0.10 + (3500-1600) * 0.05
else:
print "level 4"
print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
#~def debug_demo
if __name__ == "__main__":
debug_demo(4500)

2.開始運行調試

運行程序./debug_demo.py,得到

> /usr/local/qspace/user_network/debug_demo.py(7)debug_demo()
-> if val <= 1600 :
(Pdb)

-> val <= 1600 : 指示當前執行的語句,(Pdb)等待你的調試指令. pdb的指令很豐富,輸入h指令可以查看指令的使用方法。下面簡單介紹常用指令:

查看代碼上下文,l(小寫L)

(Pdb) l
2 _DEBUG=True
3 def debug_demo(val):
4 if _DEBUG == True:
5 import pdb
6 pdb.set_trace()
7 -> if val <= 1600 :
8 print "level 1"
9 print 0
10 elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
(Pdb)

左邊是行號,右邊是代碼正文。

監視變數:p 變數名

(Pdb) p val
4500
(Pdb)

單步執行: n

-> elif val <= 3500 :
(Pdb) l
5 import pdb
6 pdb.set_trace()
7 if val <= 1600 :
8 print "level 1"
9 print 0
10 -> elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
13 elif val <= 6500 :
14 print "level 3"
15 print (val - 3500) * 0.10 + (3500-1600) * 0.05

加入斷點:b 行號

(Pdb) b 14

運行到斷點: c

(Pdb) c
> /*****
-> print "level 3"
(Pdb) l
9 print 0
10 elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
13 elif val <= 6500 :
14 B-> print "level 3"
15 print (val - 3500) * 0.10 + (3500-1600) * 0.05
16 else:
17 print "level 4"
18 print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
19

執行到函數返回前: r

(Pdb) r
level 3
195.0
--Return--
> /****()

->None
-> print (val - 3500) * 0.10 + (3500-1600) * 0.05
(Pdb)

說明:

pdb還有很多其他很多有用的指令,讀者可以自行探索。輸入h,h 命令。就可以得到命令的詳細幫助。

不過,我個人認為一般無需啟動這種調試方法,一般使用日誌輸出進行調試即可,除非遇到了非常微妙的錯誤。這時,單步調試的威力便顯示出來了

⑨ 如何用pdb進行python調試

Python自帶的pdb庫,發現用pdb來調試程序還是很方便的,當然了,什麼遠程調試,多線程之類,pdb是搞不定的。

用pdb調試有多種方式可選:

1. 命令行啟動目標程序,加上-m參數,這樣調用myscript.py的話斷點就是程序的執行第一行之前
python -m pdb myscript.py

2. 在Python交互環境中啟用調試
>>> import pdb
>>> import mymole
>>> pdb.run(『mymole.test()』)

3. 比較常用的,就是在程序中間插入一段程序,相對於在一般IDE裡面打上斷點然後啟動debug,不過這種方式是hardcode的

if __name__ == "__main__":
a = 1
import pdb
pdb.set_trace()
b = 2
c = a + b
print (c)
然後正常運行腳本,到了pdb.set_trace()那就會定下來,就可以看到調試的提示符(Pdb)了

常用的調試命令

h(elp),會列印當前版本Pdb可用的命令,如果要查詢某個命令,可以輸入 h [command],例如:「h l」 — 查看list命令
l(ist),可以列出當前將要運行的代碼塊
(Pdb) l
497 pdb.set_trace()
498 base_data = {}
499 new_data = {}
500 try:
501 execfile(base_file_name,{},base_data)
502 -> execfile(new_file_name,{},new_data)
503 except:
504 logger.writeLog(「error! load result log error!」)
505 print 「load cmp logs error!」
506 raise Exception, 「load cmp logs error!」
507

b(reak), 設置斷點,例如 「b 77″,就是在當前腳本的77行打上斷點,還能輸入函數名作為參數,斷點就打到具體的函數入口,如果只敲b,會顯示現有的全部斷點
(Pdb) b 504
Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504

condition bpnumber [condition],設置條件斷點,下面語句就是對第4個斷點加上條件「a==3」
(Pdb) condition 4 a==3
(Pdb) b
Num Type Disp Enb Where
4 breakpoint keep yes at /home/jchen/regression/regressionLogCMP.py:504
stop only if a==3

cl(ear),如果後面帶有參數,就是清除指定的斷點(我在Python2.4上從來沒成功過!!!);如果不帶參數就是清除所有的斷點
(Pdb) cl
Clear all breaks? y

disable/enable,禁用/激活斷點
(Pdb) disable 3
(Pdb) b
Num Type Disp Enb Where
3 breakpoint keep no at /home/jchen/regression/regressionLogCMP.py:505

n(ext),讓程序運行下一行,如果當前語句有一個函數調用,用n是不會進入被調用的函數體中的

s(tep),跟n相似,但是如果當前有一個函數調用,那麼s會進入被調用的函數體中
c(ont(inue)),讓程序正常運行,直到遇到斷點
j(ump),讓程序跳轉到指定的行數
(Pdb) j 497
> /home/jchen/regression/regressionLogCMP.py(497)compareLog()
-> pdb.set_trace()

a(rgs),列印當前函數的參數
(Pdb) a
_logger =
_base = ./base/MRM-8137.log
_new = ./new/MRM-8137.log
_caseid = 5550001
_toStepNum = 10
_cmpMap = {『_bcmpbinarylog』: 『True』, 『_bcmpLog』: 『True』, 『_bcmpresp』: 『True』}

p,最有用的命令之一,列印某個變數
(Pdb) p _new
u』./new/MRM-8137.log』

!,感嘆號後面跟著語句,可以直接改變某個變數
q(uit),退出調試
發現在命令行下調試程序也是一件挺有意思的事情,記錄下來分享一下

w ,Print a stack trace, with the most recent frame at the bottom.An arrow indicates the "current frame", which determines the context of most commands. 'bt' is an alias for this command.

d ,Move the current frame one level down in the stack trace
(to a newer frame).

u ,Move the current frame one level up in the stack trace
(to an older frame).

使用 u 和 d 命令,我們可以在棧幀之間切換,用以獲取其相關上下文變數信息。w可以顯示最近的一些棧幀信息。

⑩ python怎麼設置環境變數

1、說明:
windows下設置python環境變數,就是把python的安裝目錄添加到系統path中。

2、步驟:
1)確定python安裝目錄,根據版本不同安裝目錄也不同,可以在開始菜單中的快捷方式中查看。在python快捷方式上點右鍵,屬性菜單

3、注意事項:
如果未出現python結果,則需要檢查路徑是否設置正確,並重新啟動一下計算機即可。

閱讀全文

與pythondebug變數相關的資料

熱點內容
php提交作業 瀏覽:815
房產還沒解壓可以辦理贈予嗎 瀏覽:224
java毫秒轉分鍾 瀏覽:753
模式識別中文pdf 瀏覽:774
c語言平均數字編譯錯誤 瀏覽:170
單片機算交流 瀏覽:45
php自適應網站 瀏覽:467
2b2t伺服器怎麼獲得許可權 瀏覽:815
c語言javaphp 瀏覽:804
程序員技術不分高低嗎 瀏覽:619
dos不是內部或外部命令 瀏覽:709
PC機與單片機通訊 瀏覽:675
二級加密圖 瀏覽:113
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825
安卓為什麼軟體要隱私 瀏覽:83
虛擬主機管理源碼 瀏覽:811
java圖形圖像 瀏覽:230