str
int
, float
, complex
list
, tuple
, range
dict
set
, frozenset
bool
bytes
, bytearray
, memoryview
可以直接設值,讓編譯器自己判斷。
或者是可以直接用 class
的建構元。
這裡舉幾個例子
剩下的就依此類推,把資料結構的名稱加上()裡面放入需要的引數就可以了。
Number Type有 int
、float
、complex
。
就是整數的意思,在 Python
中,所有的整數預設都是用 int
儲存的。
int
支援的運算子有 +
、-
、*
、/
、//
、**
、%
、>
、<
、==
等運算子。
就是浮點數的意思,比較熟悉的講法是小數,所有的小數預設都是用 float
儲存的。
float
支援的運算子有 +
、-
、*
、/
、//
、**
、%
、>
、<
、==
等運算子。
這個可能比較不熟悉一點,在數學上這是複數。
複數,是數系中範圍最廣的,包含了實數和虛數。
複數 = 實部 + 虛部
,而在 Python
中一個複數可以表示為 "float" + "float + j"
(例如:1+2j
)
float
支援的運算子有 +
、-
、*
、/
、**
、>
、<
、==
等運算子。
str
,也就是字串,是一個非常重要的東西,可以說是本節課的重點。
講到這裡應該都知道怎麼宣告了,就直接進到用法。
str
可以取出字串中特定的字元,或是特定的一段子字串。
範例程式碼
在上面的程式碼中,
s[0]
代表的是取出第1個字元,
s[2:5]
代表的是取出第2~4個字元。
由於可以修改 str
的函數很多,這裡就講一些比較常用的。
範例程式碼
'D'
'ABC'
變成 'DD'
'GG'
format()
的用意是把字串中 {}
依序改變成引數的值,而 {:.2f}
代表的是四捨五入到小數點後第 2 位s+s
也就是把 '1*2=2'
的末端再加上一個 '1*2=2'
s
設為 3 個 'a'
這裡介紹幾個好用的輔助函數
isdecimal()
是用來判斷字串裡的字元是否全部都是數字isalpha()
是用來判斷字串裡的字元是否全部都是字母eval()
是用來執行字串中的程式碼split()
把字串中以空白分開的字元視為一個變數,並且存進一個 list
裡面find()
是用來找出第一個在字串中出現的連續子字串,並回傳他的 index
(索引值)count()
是用來數一個連續子字串出現過幾次len()
會回傳字串的長度一個變數可以依據他宣告的地方不同而分成全域變數和區域變數。
下面就用範例程式碼來講解
在上面的程式碼中,
n
、m
是屬於全域變數,
a
、b
是屬於 add()
函數 的區域變數。
全域變數的意思就是在這個程式碼的任何地方都可以使用的變數,
區域變數就是只能在特定區域使用的變數,
例如 a
、b
為 add()
函數中的區域變數,
所以 a
、b
只能在 add()
函數中使用。
另外在宣告前面加上 global
就會讓那個變數宣告成全域變數。
在上面的程式碼中 a
、b
為全域變數
現在我們要來拆解第一次上課的程式碼了,
還記得下面這行毒瘤嗎?
現在你應該除了 map()
函數都要看的懂了。
其實 map()
就是把 input().split()
回傳的 list
的每一項執行引數1的函數,
而我們帶入的是 int()
,所以這行程式碼的意思就是
把輸入拆解成
list
之後,把每一項轉換成int
,並且在轉換成tuple
,最後把前兩個變數分別存入n
、m
。
這句話如果現在不懂沒關係,等你寫久了會慢慢懂得
Python
會出現 Exception
,並且終止程式。