有些時候我們需要通過命令行將參數傳遞給腳本,C語言中有個getopt()方法,python中也有個類似的命令行參數解析方法getopt()。python也提供了比getopt()更簡潔的argparse方法。另外,sys模塊也可以實現簡單的參數解析,本文將對這3種命令行參數解析方法簡要介紹。
創新互聯專業為企業提供班瑪網站建設、班瑪做網站、班瑪網站設計、班瑪網站制作等企業網站建設、網頁設計與制作、班瑪企業網站模板建站服務,10余年班瑪做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
sys.argv是傳入的參數列表,sys.argv[0]是當前python腳本的名稱,sys.argv[1]表示第一個參數,以此類推。
命令行運行:
可以看到傳入的參數通過sys.argv來獲取,它就是一個參數列表。
python的getopt與C語言的的getopt()函數類似。相比于sys模塊,支持長參數和短參數,并對參數解析賦值。但它需要結合sys模塊進行參數解析,語法格式如下:
短參數為單個英文字母,如果必須賦值需要在后面加英文冒號( : ),長參數一般為字符串(相比短參數,更能說明參數含義),如果必須賦值需要在后面加等號( = )。
命令行運行:
注意:短參數(options)和長參數(long_options)不需要一一對應,可以任意順序,也可以只有短參數或者只有長參數。
argparse模塊提供了很多可以設置的參數,例如參數的默認值,幫助消息,參數的數據類型等。argparse類主要包括ArgumentParser、add_argument和parse_args三個方法。
下面介紹這三個函數的使用方法。
argparse默認提供了 -h | --help 參數:
命令行運行:
下面列出部分參數:
下面來添加參數:
命令行運行:
parse_args() 方法用于解析參數,在前面的示例代碼中使用parse_args方法來提取參數值,對于無效或者錯誤的參數會打印錯誤信息和幫助信息:
命令行運行:
本文介紹了Python的三種命令行參數解析方法sys.argv、getopt和argparse,可以根據自己的需要進行選擇,getopt和argparse兩種方法相比來說,建議選擇argparse,代碼量更少更簡潔。更詳細的使用方法參考官方文檔:
--THE END--
1、complex()
返回一個形如?a+bj?的復數,傳入參數分為三種情況:
參數為空時,返回0j;參數為字符串時,將字符串表達式解釋為復數形式并返回;參數為兩個整數(a,b)時,返回?a+bj;參數只有一個整數 a 時,虛部 b 默認為0,函數返回?a+0j。
2、dir()
不提供參數時,返回當前本地范圍內的名稱列表;提供一個參數時,返回該對象包含的全部屬性。
3、divmod(a,b)
a -- 代表被除數,整數或浮點數;b -- 代表除數,整數或浮點數;根據 除法運算 計算 a,b 之間的商和余數,函數返回一個元組(p,q)?,p 代表商?a//b?,q 代表余數?a%b。
4、enumerate(iterable,start=0)
iterable -- 一個可迭代對象,列表、元組序列等;start -- 計數索引值,默認初始為0‘該函數返回枚舉對象是個迭代器,利用 next() 方法依次返回元素值,每個元素以元組形式存在,包含一個計數元素(起始為 start )和 iterable 中對應的元素值。
python中def意思是聲明函數。
Python 使用def 開始函數定義,緊接著是函數名,括號內部為函數的參數,內部為函數的 具體功能實現代碼,如果想要函數有返回值, 在?expressions 中的邏輯代碼中用 return 返回。
expressions
實例def function():
print('This is a function')
a = 1+2
print(a)
相關內容:
function 的函數,函數沒有不接受參數,所以括號內部為空,緊接著就是 函數的功能代碼。如果執行該腳本,發現并沒有輸出任何輸出,因為我們只定義了函數,而并沒有執行函數。 這時我們在 Python 命令提示符中輸入函數調用 function(), 注意這里調用函數的括號不能省略。
那么函數內部的功能代碼將會執行,輸出結果:This is a function。
本文名稱:python命令函數 python 函數
分享網址:http://vcdvsql.cn/article20/dopgico.html
成都網站建設公司_創新互聯,為您提供網站改版、企業建站、App設計、網站設計、關鍵詞優化、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯