iT邦幫忙

7

【Python 超入門】(4) 變數型態-list: 能納百物的百寶袋

大家好,我是「心原一馬」,是「內心原來一心喜歡打程式碼」的簡稱。
在上一篇,我們初步講解了如何使用變數,
詳情見【Python 超入門】(3) 新手的疑惑- 程式? 我按計算機都算的比你快 這篇。
我們打個比方好了,變數就像一個收納箱一樣,
你可以把你的資料存在裡面,
需要時再把它叫出來。
今天有系統的為大家介紹初學程式最常用的三種型態: 數字、字串、列表(list)
其實不光是初學者常用而已,
即便是我深入程式多年,我也覺得目前這三種變數型態也是我最常用到的,
讓我們來一探他們的盧山真面目吧。

(1)變數型態- 整數或浮點數

數字分兩種,完整的數字如「...,-1,0,1,2,3,...」稱為整數,
帶有小數點的數字則稱為浮點數。
變數能夠儲存數字,並像平常做的數學運算一像可以做加、減、乘、除,
需注意程式語言的乘除用的符號是「*」和「/」,
與平時你數學課看到的「×」和「÷」長的不太一樣。

例子: 計算一天的打工薪水

假設時薪200,一天工作10小時,可以用以下程式計算:

hour_salary = 200              #設定時薪
day_salary = hour_salary * 10  #一天工作十小時
print(day_salary)

結果為2000

x=x+1 !?

讓我們看這支程式:

x = 5
x = x+1
print(x)

如果你是初學程式的話,可能會覺得 x = x+1 這行程式好像怪怪的,
因為,從小數學老師就告訴我們「x = x+1」這個式子是無解的。
其實啊,程式語言的「=」跟數學上的等號有點不太一樣,
程式的「=」意思是「指定數值」,
右邊是我們想收納的物品,
左邊的變數名稱告訴我們要把東西放在哪個收納箱裡。
以上面的程式來說,x 一開始設為5。
做「x = x+1」這行時,我們會先把原本的x拿出來算x+1(因為x本來是5,x+1是6),
再把6存到變數x裡面。所以結果是6
像這種更新自己變數的計算,我們也可以將「x = x+1」簡寫為「x += 1」,如下:

x = 5
x += 1
print(x)

(補充說明)
有新人問我說,既然是簡寫,為什麼不直接省略x,把「x = x+1」寫成「x =+ 1」就好呢?
因為如果這樣寫的話,程式會解讀成「x= (+1)」,也就是「x 等於正一」的意思,
同樣的,如果把「x = x-1」寫成「x =- 1」的話,也會誤會是「x 等於負一」的意思,
因此如果是更新自己變數的計算,
「+」,「-」,「*」,「/」符號要擺在等號前面哦~

(2)變數型態-字串就是一串文字

簡單來說,幾乎鍵盤上打的出來的字元,都能夠存成字串,
當我們想要串接兩個字串時,可以用「+」符號,直接看例子:

例子: 打招呼

寫一支程式跟你的朋友打個招呼:

name = "Alice" 
greeting="Nice to meet you, "
print(greeting+name) # 用加號把 greeting 和 name兩個字串接起來

結果: Nice to meet you, Alice

(3)變數型態- list: 能納百物的百寶袋

如果說剛剛用來存數字和字串的變數像收納箱的話,
那麼list肯定就像是哆拉A夢的口袋一樣,
你想放多少東西就放多少東西。
想像一個情境,假設我們用程式管理學生資料,
你想把每個人的名字記下來,
你當然可以用很多變數去存,如下:

student1 = 'Alice'
student2 = 'Bob'
student3 = 'Cindy'

但如果今天又來了三個轉學生Daisy, Eve, Fairy,
要管理這麼多的變數可不是一件容易的事呢~
這時就可以用list把所有學生名字一次存起來。

使用列表(list)

建立列表(list)時,必須把資料用中括號([])圍起來,用逗號把資料隔開:

students = ['Alice', 'Bob', 'Cindy', 'Daisy', 'Eve', 'Fairy'] 

一個變數,一次搞定。

新增元素

如果又新來的一個轉學生Gary,想要在原列表新增元素怎麼辦呢?
可以用前面介紹過的「+=」就行了,例子:

students = ['Alice', 'Bob', 'Cindy', 'Daisy', 'Eve', 'Fairy'] 
students += ['Gary'] #列表後面必須串接列表,效果同students = students+['Gary']
print(students)

結果為['Alice', 'Bob', 'Cindy', 'Daisy', 'Eve', 'Fairy', 'Gary']

取用資料

在列表名稱後面加上中括號([]),裡面填入位置編號,
即可取出資料值,例如:

students = ['Alice', 'Bob', 'Cindy', 'Daisy', 'Eve', 'Fairy'] 
print(students[0])
print(students[1])
print(students[5])

結果:
Alice
Bob
Fairy
這邊要特別注意的是,
電腦存資料的編號是從0開始,
電腦存資料的編號是從0開始,
電腦存資料的編號是從0開始,

因為很重要所以說三次,
很多人初學會不習慣,平常數數比較常是從1開始數,
但是電腦從0開始數,
所以你呼叫 students[0] 才可以拿到第一個元素'Alice'。

課後練習

這題讓大家自己檢測是否理解今天的內容了,
請問這支程式的問號(?)應該填入多少可以在螢幕上顯示7呢?
歡迎在留言區留下你的答案哦~

L = [1,2,3,4,5,6,7,8,9,10,11,12,'7','6','5','4','3','2','1']
print(L[?])

2
ImQQ
iT邦新手 5 級 ‧ 2019-06-19 00:28:55

應該是 print(L[6])
我是今年開始學python的新手,請多多指教 :D

Bingo,6是一個答案。
小馬初次寫python系列的教學文,也請多多指教xD
希望這系列的教學文讓你有收穫哦。

ImQQ iT邦新手 5 級‧ 2019-07-02 22:57:36 檢舉

好的。謝謝你的教學文喔

2
跑得快
iT邦新手 3 級 ‧ 2019-06-19 09:23:48

print(L[6])、print(L[12])都可以有(?

問的好,由於題目沒有說在螢幕上顯示「7」是字串還是數字,兩個應該都可以看到7。
(仔細看的話,print(L[12])並不會把字串的引號也印出來)
Bingo~

1
一級屠豬士
iT邦高手 1 級 ‧ 2019-06-19 18:37:50

程式語言的Array , List 使用的 Index, 有些是0開始,有些是1開始.
看語言怎樣設計.
電腦存資料的編號是從0開始 <-- 不盡然.

邦友您好:
謝謝您的留言指教,我內文可能寫「目前多數程式語言的array(或list)的index是從0開始算的」這樣比較精確一點。確實不是所有的程式語言index都從0開始(利如matlab); 但因為現代程式始祖C/C++的index是從0開始,可能由於習慣問題,目前看到的多數語言比較多是從0開始算的哦(利如C/C++, java, python, javascript都是)
有興趣的話也可參考知乎的這篇討論: 為什麼大多數編程語言中的數組都是從0開始計數的

1
圓頭人
iT邦新手 2 級 ‧ 2019-07-01 14:53:05

哈哈哈~~把list看成百寶袋,很有趣!!

對呀~ 其實會想用百寶袋比喻,不只是因為它能裝很多東西,更厲害的是,list裡可以同時裝多種不同型態的變數哦,例如:

L=[15,'Hello',[1,2,3]] # 例如list裡同時放入數字、字串、list 

這在其它語言中很多是沒有這種功能的呢~

我要留言

立即登入留言