利用Python處理字串、字元全攻略

文、意如老師
導讀目錄:
2. 從零開始認識程式碼
任務1-1:抓取字串中的第幾個字
任務2:實作抓出身分證中的第2碼(數字1代表男生,2為女生)
任務3:取字串從第幾個開始~到幾個字結束
任務4:計算字串長度
任務5:將字串全轉為小寫、大寫
任務6:字元取代
任務7-1:字串分割為陣列
任務7-2:實作整理字串後讀出 data = "0912569369-John-Taipei-09:02"
任務8-1:將字串格式化輸出
任務8-2:其它格式化Format用法
任務1-1:抓取字串中的第幾個字
程式碼:
程式碼 |
執行 |
a = "Hello,world" print( a[6] ) #抓字串的第幾個位置 #字串從0開始算 |
|
任務2:實作抓出身分證中的第2碼
實作:使用者輸入身分字號G221234567 G101234456
代表2為女生,1為男生,可印出身分證字號第2碼為: ? 1或2
程式碼 |
執行 |
a = input("請輸入身分證字號:") #G123852941 print("身分證號碼第2位="+a[1]) #抓字串的第幾個位置 #從 0 開始算 |
|
任務3:取字串從第幾個開始~到幾個字結束
程式碼 |
執行 |
#取字串從第幾個開始~到幾個字結束 b = "Hello, World!" print(b[2:5]) #5的位置結束(不會印出) |
|
任務4:計算字串長度
使用時機:當規定使用者只能輸入幾個字的時候,或者使用迴圈時計算資料筆數時
程式碼 |
執行 |
a = "Hello, World!" print(len(a)) |
|
任務5:將字串全轉為小寫、大寫
使用時機:當程式設計讓使用者輸入身分證字號時,可以自動將使用者輸入的第一個字母強制轉成大寫。
或者程式將帳號設計為小寫字母,當讓使用者輸入帳號時,就可以強制將使用者輸入的字母全都轉成小寫,減少使用者如果輸入大寫時的錯誤。
程式碼 |
執行 |
name = "YirUATSTUdio" print(name.lower())
name = "YirUATSTUdio" print(name.upper()) |
|
任務6:字元取代
程式碼 |
執行 |
a = "YiruAt, Studio!" print(a.replace("A", "a")) #Yiruat, Studio! print(a.replace(", ", "")) #YiruAtStudio!
b = "Hello, World!" print(b.replace("Hello,", "哈囉!")) #哈囉! World! |
|
任務7-1:字串分割為陣列
有些資料會使用逗號(,)、頓號(、)、空格( )、或是其他(-),等等符號來紀錄資料,這時候需要把這些字串整理出來,分割字串讓它存為陣列類型,方便後續做使用
程式碼 |
執行 |
a = "Yiru,AtStudio!,123,abc" #a是字串資料 b = a.split(",") #使用,號分割字串 ,變成 陣列 print(a) # Yiru,AtStudio!,123,abc print(b) # ['Yiru','AtStudio!','123','abc'] #印出所需資料 #第[0]個位置 Yiru,第[1]個位置 AtStudio! 以此類推 print(b[1]) #AtStudio! #如果資料是用其他符號來分割 例如: || a = "Hello||World!||123||aa" b = a.split("||") print(b[2]) #123 |
![]() |
任務7-2:實作 整理字串後讀出
資料為:"0912569369-John-Taipei-09:02"
整理後印出:
電話:0912569369
姓名:John
縣市:Taipei
登入時間:09:02
程式碼 |
執行 |
data = "0912569369-John-Taipei-09:02" b = data.split("-") #分割符號為 "-" print("電話:"+b[0]) #0912569369 print("姓名:"+b[1]) #John print("縣市:"+b[2]) #Taipei print("登入時間:"+b[3]) #09:02 |
|
任務8-1:將字串格式化輸出
{:s} 代表字串
{:d} 代表整數
{:f} 代表浮點數
{:.1f} 顯示小數位數
{:%} 顯示百分比樣式
{:s} 代表字串
程式碼 |
執行 |
name = "John" print("Hi,{:s}".format(name)); #把name變數塞進{:s} #Hi,John age = "10" print("Hi,{:s},i'm {:s} years old ".format(name,age)); #Hi,John,i'm 10 years old print("Hi,{:s},i'm {:s} years old ,{:s}".format(name,age,'Yes!')); #Hi,John,i'm 10 years old ,Yes! |
![]() |
任務8-2:其它格式化Format用法
程式碼 |
num = 23 print("Num={:d}".format(num)); #{:d} 只能放整數 #23 num = 23.56700 print("Num={:f}".format(num)); #{:f} 浮點數 #23.567000 num = 23.5611 print("Num={:.2f}".format(num)); #{:.2f} 印到小數第二位 #23.56 num = 23.5611 print("Num={:%}".format(num)); #{:%} 顯示百分比樣式 #2356.110000% |
Photo credit:Pexels
FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan
痞客邦Blog:http://lccnetvip.pixnet.net/blog