格式化字串
字串格式化是一種非常簡潔的特性,它能讓我們動態更新字串中的內容。假設我們有從伺服器獲取的使用者資訊,並希望根據該資訊顯示自定義訊息,第一個想法是應用字串連線之類的東西。
first_name = 'Tom'last_name = 'Cruise'welcome_message = "Welcome" + " " + first_name + " " + last_nameprint(welcome_message) # Welcome Tom Cruise複製程式碼
如果我們有更多的變數,那麼動態字串可能會有點難以閱讀。如果我們有其他型別的資料,我們也需要將它們轉為字串。最簡潔的方式是使用格式化字串。
first_name = 'Tom'last_name = 'Cruise'welcome_message = f'Welcome {first_name} {last_name}'print(welcome_message) # Welcome Tom Cruise複製程式碼
字串前的f表示格式化的字串,動態值放置在{}中
這是一種非常簡潔的語法,等價於JavaScript在ES6中引入的字串插值表示式或模板字串,它看起來是這個樣子:
firstName = 'Tom';lastName = 'Cruise';welcomeMessage = `Welcome ${firstName} ${lastName}`;console.log(welcomeMessage) // Welcome Tom Cruise複製程式碼
字串索引
Python中的字串是簡單有序的字元集合,所以我們處理它有很多的技巧。我們可以訪問字串的字元,選擇子字串,反轉字串等等,非常簡單,這也被稱為切片。
language = 'python'first_character = language[0] # 索引是從0開始second_character = language[1]print(first_character) # pprint(second_character) # y# 字串可以用這個簡單的方式操作[start:stop:step-over]range_1 = language[0:2] # 從0開始到1最後range_2 = language[0::1] # 從0開始,以步長為1進行迭代,直到最後range_3 = language[::2] # 從0開始,以步長為2進行迭代,直到最後range_4 = language[1:] # 從1開始到最後range_5 = language[-1] # 最後一個字元range_6 = language[-2] # 倒數第二個字元reverse_string = language[::-1] # 從尾部開始反轉字串reverse_string_2 = language[::-2] # 反轉字串並忽略第一個字元print(range_1) # pyprint(range_2) # pythonprint(range_3) # ptoprint(range_4) # ythonprint(range_5) # nprint(range_6) # oprint(reverse_string) # nohtypprint(reverse_string_2) # nhy複製程式碼
www.digitalocean.com/community/t…
不可變性字串本質上是不可變的,這意味著字串的值不可改變。
favorite_website = 'dev.to'favorite_website[0] = 'w'print(favorite_website) # TypeError: 'str' object does not support item assignment複製程式碼
內建的字串函式和方法
Python中有一些內建的函式和方法用來操作字串型別的資料。函式通常是一個可以被獨立呼叫的行為,比如print() round(),而方法則是一個簡單的函式,是物件的一部分,用.運算子呼叫。
quote = 'javascript is awesome'print(len(quote)) # 21 (計算字串的總長度)new_quote = quote.replace('javascript', 'python')print(new_quote) # python is awesomecapitalize = new_quote.capitalize()print(capitalize) # Python is awesomeupper_case = new_quote.upper()print(upper_case) # PYTHON IS AWESOMEprint(quote) # javascript is awesome (Note: Strings are immutable!) 複製程式碼
www.w3schools.com/python/pyth…
www.w3schools.com/python/pyth…
布林值布林值在python中表示為bool,值為True或False
is_cool = Trueis_dirty = Falseprint(10 > 9) # True 複製程式碼
註釋
註釋是用程式碼編寫的語句,以增強其可讀性。在Python中,它們是用#符號寫在語句後面的。註釋會被直譯器忽略,只是為了程式碼的可讀性。我已經在程式碼示例中使用它們來列印輸出或新增一些註釋。根據良好的程式設計實踐,我們應該儘量讓我們的程式碼具有可讀性,就像閱讀英語一樣,只在需要的時候添加註釋,因為過多的註釋會適得其反。
# This is not a very useful comment but written just for the sake of demonstration複製程式碼
集合
集合是一種非常重要的資料型別,它們是一組物件的集合。它也是一種資料結構,這意味著它一種容器,可以把不同用途的資料以某種特定的格式組織起來。就像JavaScript中的陣列一樣,用[]表示,可以用來儲存相同或不同的資料型別。
favorite_languages = ['javascript', 'python', 'typescript']shopping_cart_items = ['pen','toothbrush', 'sanitizer','eraser']random_things = ['football', 123, True, 'developer', 777]first_item = shopping_cart_items[0]print(first_item) # 'pen'複製程式碼
集合切片與字串類似,列表也可以切片。然而,與字串不同的是,列表是可變的,這意味著它們的資料可以被改變。
soccer_stars = ['ronaldo', 'messi','ibrahimovic','zidane','beckham']soccer_stars[0] = 'suarez'print(soccer_stars) # ['suarez', 'messi','ibrahimovic','zidane','beckham']range = soccer_stars[0:3]print(range) # ['suarez', 'messi', 'ibrahimovic']print(soccer_stars) # ['suarez', 'messi','ibrahimovic','zidane','beckham']# Note : Slicing lists does not mutate themclone = soccer_stars[:] # copies the list. Commonly used in Pythonprint(clone) # ['suarez', 'messi','ibrahimovic','zidane','beckham']reverse_order = soccer_stars[::-1] # reverses the order of dataprint(reverse_order) # ['beckham', 'zidane', 'ibrahimovic', 'messi', 'suarez']複製程式碼
矩陣列表可以是多維的。我上面提到的例子列表都是一維或單維的。但是,我們可以在列表中包含列表。二維列表是這樣的:
matrix_2 = [[1,3,2], [1,3,2], [2,3,4], [2,3,5]]first_item = matrix_2[0]print(first_item) # [1,3,2]first_item_first_element = matrix_2[0][0] # or first_item[0]print(first_item_first_element) # 1複製程式碼
類似地,我們可以在列表中巢狀任意數量的列表,從而建立不同維度的矩陣,這與我們學過的數學矩陣類似。這種矩陣資料有助於儲存影象等複雜資料,並用於機器學習模型。探索它們並在以後詳細地看到它們的實際應用將是非常有趣的。