iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

小提醒

py建議 snake case, 例如 user_number

常用變數型態

  1. 數字:int
my_num = 500
print(f"value:{my_num}, type: {type(my_num)}")
  1. 字串:str
my_str = "hello world"
print(f"value:{my_str}, type: {type(my_str)}")
  1. 陣列:list
my_array = []
my_array.append(3)
print(f"value:{my_array}, type: {type(my_array)}")
  1. 物件:dict
my_object = {}
my_object['user_name'] = 'jack'
print(f"value:{my_object}, type: {type(my_object)}")

一些程式結構宣告

  1. function
def my_func():
    return "hello my_func"
my_str = my_func()
print(my_str)
  1. class
''' class 一定要駝峰風格, 不能用snake唷 '''
class User: 
    def __init__(self, name, job):
        self.user_name = name
        self.user_job = job
    
    def get_user_name(self):
        return self.user_name
    def set_user_name(self,name):
        self.user_name = name

user_a = User('jack','postman')

print(user_a.get_user_name())
user_a.set_user_name('jackie')
print(user_a.get_user_name())

說明:

  1. def init 是 constructor // 這邊不懂的大大可能要請另外查一下什麼是OO constructor
  2. 成員函式宣告, 傳入參數要有self, 不然不會被視為class的成員函數
  3. user_a = User('jack', 'postman') 這一行是用 User這個class規則, 建立了一個 user_a 的物件, 此為實例化, 所以 user_a.get_user_name() 就是用 user_a 這個物件操作其中的成員函數 get_user_name()

其他語法

常用的大概就 if, for, 或其他基本的語法, 可以再請參考官網或其他教學
https://docs.python.org/zh-tw/3/tutorial/index.html
https://kopu.chat/%E4%B8%80%E5%B0%8F%E6%99%82python%E5%85%A5%E9%96%80-part-1/

python的import路徑問題

python import 分為絕對路徑跟相對路徑, 初學的大大建議先用絕對路徑讓程式先能動, 比較熟悉了再使用相對路徑讓程式更完善, 相關教學可以再請洽google大神xD

FP/閉包 相關延伸(初新者建議這段先不一定要看)

high order function (HOF) // 初學者看不懂的話可以先跳過去, 有興趣的大大可以研究一下

def my_func():
    data = []
    def fn(value):
        data.append(value)
        print(data)
    return fn

inner_func = my_func()
inner_func(333)
inner_func(444)
inner_func(555)

通常這種 function return function 的結構, 可以被用來做資料處理時, 讓程式更好讀(expressive), 這也是functional programming(fp)的好處或是說風格;
第二種功能就是拿來做閉包維護資料用, 例如上面的程式碼因為 function return function 出去, 所以 data 就不會消失, 這樣可以作為一個資料變數來使用

小提醒

語法因為太多了, 可能沒辦法在有限的篇幅做足夠的涵蓋, 此篇也算是一個做點橋接是的介紹, 起碼有點概念可以去看更多的tutorial, 然後寫程式的時候, 讓程式能動之餘, 還是要重視維護行, 想著:這樣的變數命名, 接手維護的人會不會看得懂, 這樣寫法, 會不會以後自己都看不懂. 當然有前輩可以幫忙review那是最好也不過的, 我也很感謝幫我看code的前輩們. 這篇就先到這邊啦, 祝大家code運昌隆


上一篇
0x06 GoogleAppScript
下一篇
0x08 Pytest測試框架 教學
系列文
從零開始的自動化QA學習之路9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言