###### tags: `chapter 2` `Python` # 2-2 認識變數 # 如果說一個寫python的環境(jupyter、PyCharm)是一個機械製造廠,那變數就是裡面的螺絲,你需要各種不同的螺絲才可以組裝出你期望的精密機械,在python和其他所有的程式語言世界裡,你會需要變數來協助你完成你的程式。 ![](https://i.imgur.com/22pdILC.png) 螺絲分成很多種螺絲,變數也是,分成很多種`型態`,不同型態的變數是無法混合使用的哦! ![](https://i.imgur.com/aRbtlPJ.png) 變數底層的運作大致上是從記憶體要到一塊空間,然後在裡面存放程式運行中的值,就像是你取出螺絲,那桌子(記憶體)上一定要有地方給螺絲(變數)放。實際上的運作則有點複雜,也不是重點,但你只要記得`變數是用來存放程式運行中產生的值`即可,就像是前一小節我們變數比喻為成績欄,那`成績欄就是用來存放這張考卷的成績`。 ### 宣告一個變數 ### 如果你想宣告一個變數,你只要很簡單的打上你賦予他的名字,以及最一開始的值即可。 假設小明今天想宣告一個變數叫做`hourly salary`(時薪)。 ```python= hourly_salary = 150 ``` 根據上述程式,可以發現小明時薪是150元(!?) 有了這個變數的知識,搭配上四則運算,就可以很輕鬆的算出小明的月薪了!!! ```python= hourly_salary = 150 total_hours_this_month = 50 print("這個月的月薪是" , hourly_salary * total_hours_this_month , "元") print("今年的年薪是", hourly_salary * 50 * 12, "元") print("一個月有", 24 * 30 - total_hours_this_month, "個小時沒在上班") ``` **Q**:這樣子的好處在哪裡呢? **A**:當今天小明的時薪或著時長改變,我們只需更動變數內的值就可以收工了! **假設場景**:小明加薪了!現在的`hourly_salary`是300元。 ```python= # 使用變數概念 hourly_salary = 300 # 從原本的150改為300 total_hours_this_month = 50 print("這個月的月薪是" , hourly_salary * total_hours_this_month , "元") print("今年的年薪是", hourly_salary * 50 * 12, "元") print("一個月有", 24 * 30 - total_hours_this_month, "個小時沒在上班") ``` ```python= # 「不使用」變數概念 print("這個月的月薪是", 300 * 50, "元") # 手動調整 print("今年的年薪是", 300 * 50 * 12, "元") # 手動調整 print("一個月有", 24 * 30 - 50, "個小時沒在上班") # 沒有使用到時薪,不用調整 ``` ![](https://i.imgur.com/dQxwK0X.png) 關於變數的命名有一定的規則: * 必須由英文字母、底線( _ )開頭和組成 * 大小寫必須分割,Name和name是兩個不同的變數 * Python系統保留字(關鍵字)是無法當作變數名稱的 ![](https://i.imgur.com/DBV9EDJ.png) 如果想知道這顆螺絲(變數)放在桌上(記憶體)的哪個位置,我們可以利用`id()`這個函式,讓python告訴我們他在哪。 ```python= hourly_salary = 150 print(id(hourly_salary)) ``` 輸出結果可能每台電腦都不太一樣,因為每台電腦分配的位置可能都不同。