1. 程式人生 > >python中引數、解包和變數

python中引數、解包和變數

這是學習python的第10課,主要學習了另外一種將變數傳遞給指令碼的方法,也就是用  argv  來傳遞變數。

from sys import argv
#read the WYSS section for how to run this
script,first,second,third = argv

print("The script is called:", script)
print("Your first variable is:", first)
print("Your second variable is:", second)
print("Your third variable is:",third)

執行結果:

 

下面我來好好分析一下這段程式碼:

from sys import argv

sys 為內建模組,提供了許多函式和變數來處理 Python 執行時環境的不同部分。是固定的用法,不能自己隨便寫名字代替它,這行的作用就是要把用到的東西(比如需要什麼特定函式什麼之類的)從這個東西存放的模組中引入程式中。

就好比C語言中的strlen()函式、strcat()函式、strcmp()函式等等,需要寫入標頭檔案#include<string.h>預處理命令。經過預處理後,這幾個函式才能用。

argv就是列表(引數變數),是程式設計術語。在直譯器啟動後, argv 列表包含了傳遞給指令碼的所有引數, 第一個元素為指令碼自身的名稱。

script,  first,  second,  third  =  argv

這句程式碼是將  argv  解包  (unpack),它的含義是把  argv  中的東西取出,解包,把所有的引數依次賦值給左邊的這些變數。

易錯之處:

在命令視窗執行時,要輸入  python  ex13.py  1  2  3

指令碼的名稱放在第一個,後面引數依次是  1,2,3,要注意執行指令碼時輸入的引數要與定義時的引數個數要相同,否則執行時就會報錯。 

常見問題:

argv  和  input()  有什麼不同

不同點在於使用者輸入的時機。如果引數是在使用者執行命令時就要輸入,那就用  argv,如果是在指令碼執行過程中需要使用者輸入,那就用  input()。