首先下載安裝python,建議安裝2.7版本以上,3.0版本以下,由於3.0版本以上不向下兼容,體驗較差。
2
打開文本編輯器,推薦editplus,notepad等,將文件保存成 .py格式,editplus和notepad支持識別python語法。
腳本第一行一定要寫上 #!usr/bin/python
表示該腳本文件是可執行python腳本
如果您的python目錄不在usr/bin目錄下,則替換成當前python執行程序的目錄
3
編寫完腳本之後注意調試、可以直接用editplus調試。調試方法可自行網路。腳本寫完之後,打開CMD命令行,前提是python 已經被加入到環境變數中,如果沒有加入到環境變數,請網路
4
在CMD命令行中,輸入 「python」 + 「空格」,即 」python 「;
將已經寫好的腳本文件拖拽到當前游標位置,然後敲回車運行即可
B. 如何調試perl腳本
進入退出:
perl
-d debugtest用調試器載入perl程序運行,互動式界面
Loading
DB routines from perl5db.pl version 1.3
Editor
support available.
Enter
h or `h h' for help, or `perldoc
perldebug'
for more help.
main::(p4.pl:2): my($xx,$yy)=(1,1);
DB<1>
先是歡迎信息,顯示第一個可執行行:程序將要執行的當前行號。包名,文件名,文件中的行號。
提示符DB<n>
n為命令行號。h可看幫助,q退出調試器
l
預設顯示10行 再輸入l接著顯示10行
l
10 指定顯示第10行
l
8-10 指定顯示行的范圍
l
8+3 指定從哪行開始多少行。
l
subs 指定顯示函數,提供函數名。如果太長只顯示前幾行,用l接著顯示
-
顯示在當前行前面的行,再輸入-繼續向前
w
7 包含指定行的顯示窗口 windows可能不一樣
//
?? 從當前行搜索包含指定模式的行 /find/
//從前向後正向搜索,??從後向前逆向搜索 可忽略?? //中後面的? /。
S
列出所有函數,包名::函數
無參數的預設形式列出所有底層和繼承的函數,太多。加上搜索模式,指定當前程序包 S main可列出含main的函數
s 執行單條語句 顯示下一條要執行的語句。如果需要交互會等待輸入。
對於函數,僅僅是進入不執行,如果不進入函數內部,要跳過用n。不能進入系統內部的庫函數,只能進入自己定義的
n 執行一行程序,stepover 不進入函數。
f 執行當前函數剩下的語句,顯示跟隨函數的語句
step
out 舊命令,現在為切換文件名
回車
如果執行了s或n,以後只用回車重復執行上一個s或n的命令。
r 在函數中執行到函數外
b 10
在哪一行設置斷點。如果此行非執行語句,顯示不能設置斷點。如果一條語句有多行,則在第一行設置,其餘行不能設置。
b func在函數處設置斷點
b 10
($curdir eq
"") 當條件為真時中斷執行
c
執行到斷點或終止。繼續
c
12臨時斷點,只中斷一次,繼續執行在12行中斷。
L
列出所有斷點。列出前幾行,當前行,斷點。斷點條件。
B
10刪除斷點。不帶參數認為是下一行是斷點。
B *
刪除所有斷點。
X
var 不帶參數列出main包的所有變數,包括預定義的變數。指定變數不帶$,@。可能是符號表中的變數才行。現在與V同。
V
var 列出任何包的變數。只指定包名列出包的所有變數。指定包及變數為main
var。無::
S
列出所有可用的函數,包名::函數 無參數的預設形式列出所有底層和繼承的函數,太多。加上搜索模式,
指定當前程序包
S
main可列出含main的函數
p
expr
指印表達式值。把標准輸出重定向也會輸出到屏幕。
程序到達某一行時指定執行一條或多條語句。常見的行動作是顯示變數值或把含錯誤值的變數重置為指定的值
a
10 print ("curdir is $curdir\n") 多條語句在一行中用分號;分開,當要續行時用\ 執行完第10行執行指定的語句。
A
*刪除所有行動作
A 10刪除第10行的動作
>
print 在程序開始執行前執行語句。無參數形式刪除設置
<
print 在程序執行完成後執行語句。無參數形式刪除設置
跟蹤 顯示每一個執行行。
t
打開,關閉跟蹤。每執行顯示一行。
任何非調試命令的perl語句都可執行。分號可忽略。更改變數值。
H
列出從前命令
!
n 執行從前命令。忽略行號執行上一條命令
n=-2跳過2條命令。從當前H列表逆向跳過。
T
棧跟蹤。調用級
$
= &main::sub2('hi') from file debug1 line 7
$
= &main::sub1('hi') from file debug1 line 3
當前程序在第7行,在main包的sub2函數中,以hi為實際傳遞的參數。返回簡單變數,此函數由sub1調用。
=
別名 命令 給命令定義別名 =
pc print ("curdir is $curdir\n");別名存在%DB(%DB::alias)中。無參數列出定義的別名。輸入pc列印語句。
預定義別名:每次載入調試器自動定義別名。在.perldb中加入$DB'alias{"pc"} = 's/^pc/print
("curdir is $curdir\n");/';
錯誤檢查
Lint perl -MO=Lint,-u pl 編譯時檢查
perldiag錯誤信息
-w 重定義函數變數未使用
Use strict;
use diagnostics 警告信息。
命令行參數簡介
-c 語法檢查
-v版本
-w警告信息
-e執行單行程序
-s為程序提供命令行選項。perl -s prog.pl
-q =>$q=1作為選項。不出現在@ARGV中。否則不加-s,-q作為字元串存在@ARGV中。可賦值-abc="abc"
跟在程序名後帶-的是選項,不帶-的不是,不是選項的項後面的所有都不是選項。
-P先運行c預處理器,輸出再由perl執行
-I指定目錄中的包含文件
-n循環處理多個文件。不用while
-p讀文件行並顯示。同n,不用print自動顯示。
-i編輯文件,讀然後寫迴文件。
-a分割行到@F
-F分割模式,指定分割符
-0
指定輸入行結束符,用八進製表示
-1
指定輸出行結束符
-x從消息中抽取程序。忽略行,直到遇到#!..perl。到文件尾,ctrl-d
ctrl-z __END__時結束
-u產生coremp
-U可以執行不安全操作
-S從路徑中查找程序
-D設置調試標志
-T寫安全程序。從外部獲得的數據不能作為命令或修改文件系統
-d使用調試器