昨天非常概略地介紹了 Python 的基本知識後,今天依然要繼續慢慢行走的旅程,因為慢慢走比較快(九把刀說的?)。
今天的內容看似平凡,對我而言是學習許多程式語言都須具備的基本知識,所以我們出發吧!
內建函數 built-in functions 像是我們新買來的 iPhone,裡面已經有預先安裝好許多的 app,例如:計算機、日曆、信箱,我們不用透過網路下載其他的 app,便能使用一些基本卻實用的功能。
在 Python 中有許多內建的函數,我們可以使用 print()
印出特定的物件,使用 len()
計算字串的數量或長度,使用 sum()
進行數字的加總等。
(下圖為 Python 中的內建函數)
其中有一個特別想拿出來跟大家分享的內建函數——help()
,是一個對於初學者來說非常重要卻也非常雞肋的函數。(那說來做什麼?)
在這個網路資訊、GPT 非常流通的時代,相較於閱覽說明書,我們更多時候會直接搜尋「如何使用 xxxx?」,但這並不代表「學會如何使用說明書」不重要,透過在 Python Interactive Shell 中使用 help()
,可以讓我們查詢 Python 中的各項指令、關鍵字的使用方式。
# 查詢 Python 中所有預留的關鍵字
help('keywords')
# 查詢更多有關 string 的資訊
help(str)
變數 Variables 像是就像是電腦裡的資料夾,我們可以自由地命名、存放各種資料,裡面可以只放一個資料,也可以放許多的資料,後續也可以透過這些變數,進行許多的操作與運算。
雖然說可以自由地命名各種變數,但還是有一些小小的限制,一如爸媽不會把小孩命名為張鮭魚之夢(誤),在 Python 中,變數的命名也有一些建議與規則。
_
開頭firstname
與 FIRSTNAME
是不同的兩個變數)# 不合規範的命名
first-name
first@name
first$name
num-1
1num
隨著學習的程式語言越來越多,也會瞭解每個語言有自己的慣例 convention(行規?),像是 JavaScript 的變數會使用小駝峰(lower camel case)命名,Python 依循慣例則會使用蛇式(snake case 進行)命名,也就是使用底線 underscore _
連接單字,例如:first_name
、is_married
等。
資料夾如果不放東西,就是一個空的資料夾(廢話!),變數也需要在裡面儲放值 value,才會是一個有用的變數。透過宣告 declare 與賦值 assign 這兩個動作,我們得以使用並操作變數。
先說說賦值,我們透過使用 =
對變數進行賦值,也就是將我們想要儲放的資料 data 放在指定的變數裡面。
# 如何進行變數賦值
first_name = "Ray"
last_name = "Allen"
age = 70
回頭提及宣吿,有趣的是在 Python 中,我們可能沒辦法很明顯地感受到什麼是宣告,因為不像 JavaScript 會使用關鍵字 const
、let
進行宣告,告訴程式說「這是一個變數喔!」,Python 在初次賦值的時候也順便(真的很順便)地進行了宣告,而無需透過指定的關鍵字。
這時候我們也可以運用稍早學到的內建函數 print()
印出變數裡的值,承接上面變數賦值的命名,此時如果我們使用 print(first_name)
,可以在 console 中印出 "Ray"
的字串。
如果說科技的進步源自偷懶,那創造科技的工程師想必是偷懶的根源,所以一次只能命名一個變數,對於工程師來說實在太慢了,如果有五個變數需要命名,那就一次五個一起來吧!(在座的各位通通都是垃圾,開玩笑的!)
# 同時命名多個變數
country, city, postal_code = "Taiwan", "Taipei", 106
# 這樣等同於
country = "Taiwan"
city = "Taipei"
postal_code = 106
有的時候我們想要將使用者的回答當作變數的值,但我們又不可能透過讀心術,所以需要透過問題讓使用者自行輸入答案,我們再將這些答案進行變數賦值,為了達到這件事,我們可以使用內建函數 input()
來取得使用者的答案。
name = input("What is your name?")
# 這時候 console 會跳出 "What is your name?" 這個問題
# 我們可以輸入 Jay
# 變數 name 此時被賦值 "Jay"
print(name) # console 會印出 Jay 的字串
在第一天的復健之路文章裡,我們有提及 Python 中的各種資料型態,如:字串、布林值、整數等,在這裡我們也可以使用內建函數 type()
來查詢變數的資料型態,藉由判別資料型態,我們才能決定後續該如何操作這些變數。
month = "December"
day = 25
print(type(month)) # 印出 str
print(type(day)) # 印出 int
寫到第二天,發現這一切比想像的難多了,經常陷入「只能意會,不能言傳」的困境裡,心中最常浮現的念頭是「啊就這樣這樣,然後變成這樣,不就這樣?」,卻沒辦法好好用文字說明腦袋中的知識內容,更不用說還要把這些概念用人類聽得懂語言進簡化摘要,也許在復健 Python 的同時,我也正在進行文字書寫的復健。