---
# System prepended metadata

title: 變數、型態與值
tags: [Python]

---

###### tags: `Python`

# 變數、型態與值

哈嘍! 大家好
今天的影片我將為大家介紹 Python 中的變數與資料型態

上一個影片中，我們展示了如何使用 print 這個功能，
"功能" 在程式設計中的專有名詞是 "函式" (function)
> 未來我們會有一個獨立的章節來討論 function ，並學習如何創造並駕馭自己建立的 fucntion

我們使用 print 這個 function 將 Hello World 字串在終端機中列印出來

如果我們想要儲存字串，方便我們未來重覆利用呢

這時候我們就需要使用變數(variable)來儲存文字

```
首先我們建立一個變數 my_name
將我的名字 "NT Uncle" 指定給 my_name 這個變數
中間使用 "等於" 符號
```

我們完成了將"值" 指定給一個 "變數" 這段語法

也許你會對這串文字感到陌生，接下來的說明，希望能協助你明白自己在做什麼，能更輕鬆的面對程式語言

講到程式語言，本質上它是一個與電腦對話的過程
如果我們的對象是一個人，而對方也會講話，我們就可以透過用"說"的方式，用同樣的語言溝通
可惜電腦不會講話，而我們要跟它"溝通"的方式，就是學習程式語言
你可以將學習程式語言想成在學習其他國家的語言，而你的對象是電腦，它們都有特定的文法
人類講的語言 也就是自然語言 我們的"文法"
電腦講的語言 也就是程式語言 它們叫"語法"

接下來我們會持續接觸程式語言的語法

當我們使用這段語法 my_name = "NT Uncle"，電腦實際發生什麼事呢，雖然會有點抽象，但接下來的解釋會協助你了解它的運作
我們都知道寫完程式要儲存，而儲存是在硬碟中發生，它不是程式運作的地方
而我們目前學習的程式語言是 Python
Python 屬於高階語言，比較接近自然語言
而高階語言需要翻譯員，協助我們將高階語言翻譯成低階語言，暫存到記憶體(RAM)後交給 CPU 運算
實際程式運作或者說計算的過程，是在記憶體(RAM)與中央處理器(CPU)之間發生
想像記憶體(RAM)是一個橫向單排的櫃子
對初學者來說，它是一個無限寬的櫃子
每一格有一個抽屜，裏面可以存放任何東西
例如
在第一個抽屜放一張紙條，寫上 Hello World
在第二個抽屜放一個娃娃(物件)
在第三個抽屜放一本書，書有三百頁，每一頁只寫一串文字或數字
在第19771029格中放一長紙條，寫上 NT Uncle
以此類推到幾乎無限個抽屜

當你要找娃娃的時候，你會到第二個抽屜去拿

你也可以到第11458468532個抽屜去拿東西，但這麼多抽屜，誰記得清楚裏面有什麼東西
不幸的是，電腦可以
但如果在抽屜上貼上標籤呢，寫上裏面有什麼東西，或是給它一個代表文字
當你告訴電腦，我要找 my_name 這個標籤，電腦知道東西在第19771029這個抽屜
並把資料取出來交給你

我們再回來看螢幕上的例子，不知道你有沒有比較深刻的認知
也許你會發現，疑~奇怪，在這個語法中，我沒有告訴程式，這份資料要放在第幾個抽屜呀
指定要放在那一個抽屜這個行為稱之為"定址"
Python 這個程式語言會自動幫你完成"定址"，你只需要記得"標籤"，也就是"變數"名稱就好了

未來我們會在"等於"符號後面放入娃娃，也就是程式語言中的物件(object)
或者是放入一本書，也就是 Python 中的 list、set、tuple、dictionary




我們來談談如何建立一個"合法"的 python 變數
Python 的變數有幾條命名規則，它們只能包含下列文字
小寫的 a ~ z
大寫的 A ~ Z
數字 0 ~ 9
底線 _

大小寫敏感 message Message MESSAGE Python 會認定是不同的變數
開頭必須是文字或底線，不可以是數字
不可以使用保留字
False    await    else    import    pass
None     break    except  in        raise
True     class    finally is        return
and      continue for     lambda    try
as       def      from    nonlocal  while
assert   def      global  not       with
async    elif     if      or        yield


我們再來做更多的操作，了解資料在記憶體中是如何被改變或移動的

```
x = 1
y = 2
x = 3
z = x + y
```

接著我們來看看 Python 中怎麼操作文字
在 Python 中被雙引號包住的內容，我們稱之為 "文字"
當你將文字儲存(或指定)給變數，這時候這個變數的型態為字串(物件)

```
message = "Hello World"

message.upper()
message.lower()
message.count("Hello")
message.replace("Hello", "Hi!")

```

最後我們來談談，操作字串型態一共有那些方法



```
type()
dir()
help()
```

透過今天這隻影片我們了解，其實你可以把寫程式當成是在學習不同國家的語言，它們有很多共同處
定義了什麼是函式，了解如何正確的宣告 python 的變數，也用了一個抽象的例子來說明，當變數被宣告之後，程式底層發生了什麼事
最後用了幾個字串物件的方法來操作字串，希望這隻影片能協助你輕鬆的面對程式語言


如果你對這支影片有任何的想法或問題，歡迎你在討論區留言，我會盡我所能的回答你的問題

如果你身邊的朋友正在學習 python，而這支影片可能對他們有幫助，也歡迎你分享給他們

如果你喜歡這支影片，也歡迎您按讚分享 或訂閱加小鈴噹以確定你能看到接下來的影片

謝謝你的觀看
