迷你課程:Python-1~字串操作與格式化

Quick look
在 Python 中,字串 (string) 是最常用的資料類型之一。掌握字串的基本操作和進階技巧,不僅能讓你的程式碼更簡潔,也能提升程式設計的靈活性。本文將基於範例程式碼進一步詳細講解,並延伸至更多實用的字串操作和格式化方法。
輸出
print("Hello, World!")
這是 Python 中最基本的輸出語句,用於在terminal (終端) 顯示文字。
字串格式化
Python 3.6 版之後引入f-string
的格式化方式,語法簡潔易懂。
name = "Micha"
print(f"Hello, {name}!")
格式化數字
可以針對一串數字中間加逗號,對一些需要這樣處理的數字很方便。
z = 1234567
print(f"{z:,}") # 輸出: 1,234,567
保留小數位數
z = 1234.56789
print(f"{z:.2f}") # 輸出: 1234.57
跳脫字符
print("She said, \"Hello!\"") # 使用 \\ 處理雙引號
#>>>
She said, "Hello!"
活用print()
要輸出的字可以在print()內用+
號來結合:
print('Hello'+'Micha')
#>>>
HelloMicha
但我們發現到兩個字串連在一起,這是因為+
會默認中間沒有空格,所以這樣的情況下應該要:
print('Hello '+'Micha')
如果不要用+
,可以直接使用,
,這樣就不會默認中間沒有空格:
print('Hello','Micha') ##輸出Hello Micha
當然,我們可以在print()內修改參數,讓上面的輸出沒有空格:
print('Hello','Micha', sep='') ##輸出HelloMicha
這是因為print() default中設定sep=’ ‘,所以平時用逗號分割時中間會有空格。
換行
如果我們希望Micha出現在下一行該怎麼做? 第一種最簡單的做法:
print('Hello')
print('Micha')
這是因為print() default 會有一個參數end = '\n'
,所以只要每一行都輸入print(),輸出就會分行。但這樣會增加代碼的行數,如果我們想要縮成一行該怎麼做?可以在中間插入\n
。
print('Hello \nMicha') #輸出會跟上面一樣
使用者輸入
使用 input()
函數接受使用者輸入:
name = input("What's your name? ")
print(f"Hello, {name}!")
萬一使用者不小心輸入多餘的空格,我們可以用strip()
來處理:
name = name.strip() # 去除前後空白
輸入字母大寫
可以針對輸入的字串做大寫轉換:
name = "micha"
print(name.capitalize()) #輸出Micha
但如果想要輸入的多個字串都大小開頭,需要使用title()
:
name = "micha wu"
print(name.title()) #輸出Micha Wu
整合處理
name = input("What's your name? ").strip().title()
print(f"Hello, {name}!")
自串分割
分割字串: 使用 split()
方法將字串分割為多個部分:
full_name = "Micha Wu"
first, last = full_name.split(" ")
print(first) # 輸出: Micha
print(last) # 輸出: Wu
合併字串
使用 join()
方法將列表中的元素合併為字串:
words = ["Hello", "World"]
sentence = " ".join(words)
print(sentence) # 輸出: Hello World
替換字串
text = "I love Micha!"
print(text.replace("Micha", "Red Bean")) # 輸出: I love Red Bean!
搜尋字串
text = "I love Micha!"
print(text.find("Micha")) # 輸出: 7 (Micha 的起始位置)
其他搭配
字串的操作還可以搭配isdigit()
、isalpha()
、isspace()
等,讓字串的操作更為靈活。
課程小結
功能 | 操作方法 | 範例 | 輸出 |
---|---|---|---|
基本輸出 | print() | print("Hello, World!") | Hello, World! |
格式化字串 | f-string | name = "Micha" print(f"Hello, {name}!") | Hello, Micha! |
數字加逗號 | f-string 加千分位分隔符 | z = 1234567 print(f"{z:,}") | 1,234,567 |
保留小數位數 | f-string 保留小數點後兩位 | z = 1234.56789 print(f"{z:.2f}") | 1234.57 |
跳脫字符 | 使用 \ 處理特殊字符 | print("She said, \"Hello!\"") | She said, "Hello!" |
字串拼接 | + 或 , 進行字串拼接 | print('Hello '+'Micha') print('Hello', 'Micha') | Hello Micha |
字串合併 | join() | words = ["Hello", "World"] sentence = " ".join(words) print(sentence) | Hello World |
換行輸出 | \n 或多次 print() | print('Hello \nMicha') | Hello Micha |
用戶輸入 | input() | name = input("What's your name? ") print(f"Hello, {name}!") | 根據使用者輸入 |
去除空白 | strip() | name = " Micha " print(name.strip()) | Micha |
首字母大寫 | capitalize() | name = "micha" print(name.capitalize()) | Micha |
標題格式化 | title() | name = "micha wu" print(name.title()) | Micha Wu |
分割字串 | split() | full_name = "Micha Wu" first, last = full_name.split(" ") | Micha 和 Wu |
替換字串 | replace() | text = "I love Micha!" print(text.replace("Micha", "Red Bean")) | I love Red Bean! |
搜尋字串 | find() | text = "I love Micha!" print(text.find("Micha")) | 7 |
檢查字串內容 | isdigit() , isalpha() , isspace() | s = "12345" print(s.isdigit()) | True |
整合處理 | strip() + title() | name = input("What's your name? ").strip().title() print(f"Hello, {name}!") | 格式化的用戶輸入結果 |