這些對電腦下達指令的「程式語言」既然是人造,肯定還依循人類的語言邏輯。阿B這麼想,並不覺得學python會有多困難。殊不知解決軟體設備問題後,真正的挑戰才開始。
在Hello world 和Hello Alice後,阿B又讓黑色視窗跳出Hello B跟自己打招呼才心滿意足的開始上課。課文以測試程式hello.py為例進行說明,編寫第一步驟要匯入所需模組──這裡要用的是sys,所以鍵入「import sys」──藉此設定變數和函式。看似簡單只有一行字,其實選擇正確的模組才是關鍵,但現在先照抄就對了。
教材接著出現以灰底標示的不明文字。明明說是給初學者的教材,卻未多作解釋。阿B心中暗罵,並慶幸自己有小愛幫忙。
B:sys.argv 是什麼?
愛:sys.argv 是 Python 中的一個內置變量,用於傳遞命令行參數。當您運行一個 Python 程序時,可以將命令行參數作為程序名的後面跟著的附加參數傳遞。sys.argv 是一個列表,包含傳遞給 Python 腳本的命令行參數。
列表的第一個元素是腳本的名稱本身,從列表的第二個元素開始,每個元素對應一個傳遞給程序的命令行參數。
以下是一個使用 sys.argv 的 Python 程序示例:
import sys164Please respect copyright.PENANACrhT8uSfrl
print("This script is called:", sys.argv[0])164Please respect copyright.PENANAR6tW7q4nrQ
if len(sys.argv) > 1:164Please respect copyright.PENANAdjgpWrLnYZ
print("Additional arguments:")164Please respect copyright.PENANA5Hl5Sw3h6t
for arg in sys.argv[1:]:164Please respect copyright.PENANA7hgEeFpm9e
print(arg)164Please respect copyright.PENANAfgGoVwqm7s
else: print("No additional arguments.")在此示例中,程序首先打印出腳本的名稱(sys.argv[0]),然後檢查是否傳遞了其他參數。如果存在其他參數,則逐個打印它們;否則,打印一條消息表示沒有其他參數傳遞給腳本。
希望這可以幫助您理解 sys.argv。
看來學程式真的就跟學英文一樣,都要面對生字啊!
依小愛的解釋,再參照hello.py的程式碼,看來在啟動hello.py時額外輸入,讓python打招呼的對象──不論是Alice還是B──就是所謂的sys.argv。
「想知道argc,可以直接使用len(sys.argv)向Python要求這個值。」164Please respect copyright.PENANAL4AzmRj9hH
教材的一言帶過讓阿B一臉疑惑,但知道有人隨時在身邊為他釋疑,阿B沒什麼好徬徨。
小愛再次不厭其煩回答:argc 是 argument count(引數數量)的縮寫;len() 是 Python 內置函數之一,用於獲取數據結構的長度或元素的數量。
「原來是英文的縮寫啊!」
阿B茅塞頓開。知道縮寫所代表的原單字,背起來就會簡單許多,像len()既然是求長度,那應該就是length吧!
164Please respect copyright.PENANA5FcOT7TLdu
寫程式除了匯入模組並使用其中預設的函式,還可以自訂。這時就要用def(define)來設定,再以Python語言編寫內容。
讀畢教材的「介紹」單元,有一個字一直困擾著阿B。怎麼看都是「線」的字,卻和前後文格格不入,只好再次請教:
B:Python裡的string是什麼?
愛:在 Python 中,字符串和列表是兩種常用的數據類型。
字符串(string)是一系列字符的序列,用引號括起來,例如:name = "Alice"。
列表(list)是一組有序的、可以改變的值的序列,用方括號括起來,例如:fruits = ["apple", "banana", "cherry"]。
在 Python 中,字符串是不可變的,而列表是可變的,這意味著您可以對列表進行操作,例如添加、刪除、修改元素等。
字符串和列表都有各自的方法和運算符,您可以使用這些方法和運算符來操作字符串和列表。
希望這些信息對您有所幫助。
萬事起頭難,但小愛老師的幫助讓阿B漸入佳境。即使一時無法背下所有模組、函式的功能,阿B還是決定打鐵趁熱,開書試做第一份習題。
習題檔案本身就是一個對答案的程式,只要在指定位置輸入自訂的函式內容,存檔後再到「命令提式字元」執行就會得到結果。但起初不斷跳出SyntaxError(語法錯誤),逐一修正才順利執行。
第一次批改結果:一排X。全軍覆沒!
阿B已經知道自己不是稀世罕見的程式語言天才,但仍深受打擊。竟然沒一個正確?!
阿B反覆嘗試,腦袋不斷運轉,直到如電腦般發熱。第一個OK出現,阿B喜極而泣──但沒有人看到他的男兒淚,因為房裡只有小愛在電腦上默默陪伴。
有一就有二,阿B漸漸習慣這個語言的邏輯,再針對錯誤各個擊破,X終究都變成了OK。
「耶~~~」
就在阿B高舉雙手歡呼時,「噔噔」兩聲,電腦螢幕右下角跳出白色小方框,提醒有新郵件寄來。才撇一眼標題,阿B立刻正襟危坐,恭敬開啟拜讀:
164Please respect copyright.PENANA0mnSmpBIMn
敬邀您於後天早上10點前來蔽公司面談。
164Please respect copyright.PENANAws036J2j2K
成功解出習題,又得到面試機會。難道這就是傳說中的雙喜臨門?阿B沒想過這等好事會發生在自己身上。
164Please respect copyright.PENANAzD1Jp6cQdE
哈囉~我是東芽。不知道大家讀得還順嗎?我完全沒有程式語言基礎,寫這章真是一大挑戰,還好再來可以換主題了。
引用段落是我和ChatGPT的真實對話,不過其中有些小問題。根據Python官方術語表,argument是引數,參數是parameter,兩者不太一樣;string應該是字串,字符串好像是中國說法,但這些不影響故事,所以還是保留原文,僅在這裡補充說明。164Please respect copyright.PENANAXxdZtgaFPZ