利用Python處理字串、字元全攻略
文、意如老師
導讀目錄:
1. 環境介紹與建置-我的第一個Python程式
2. 從零開始認識程式碼
3. Python 實作匯率轉換程式
任務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},im {:s} years old .format(name,age));
#Hi,John,im 10 years old
print(Hi,{:s},im {:s} years old ,{:s}.format(name,age,Yes!));
#Hi,John,im 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