python中引數、解包和變數
阿新 • • 發佈:2018-12-18
這是學習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()。