iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
Software Development

Python 微進階系列 第 3

Python 微進階 Day03 - string(字串) - 1 - 一般處理

  • 分享至 

  • xImage
  •  

字串

  • 字串處理後,若想保留結果記得要再用一個變數去接
  • 字串有序的,不可變更

轉義字元

  • 換行:\n
  • 定位(Tab):\t
  • 斜線():\\
  • 雙引號("):\"

字串前的一些英文字

  • r"some string":r 表示不要轉義,\n 就是 \n,而不是換行,路徑上與正則最常使用
  • f"some string":f 表示格式化字串,類似 format()
  • b"some string":b 表示 bytes
  • u"some string":u 表示 unicode

合併、分割、轉換處理

合併
join()
str.join(sequence)

  • sequence:表示要合併的字串列表
  • str:表示合併時加的字元
" ".join(["this", "is", "a", "test"])

# 以 (空格)合併
# this is a test

"-".join(["this", "is", "a", "test"])

# 以 - 合併
# this-is-a-test

分割
splite()
str.split(separator, max)

  • separator:表示要分割的值,預設是 (空格)
  • max:表示分割的次數,剩下的字串會放在最後面
x = "this is a test"
x.split()

# 以 (空格)分割
# ["this", "is", "a", "test"]

x = "a-b-c-d"
x.split("-", 1)

# 以 - 分割 1 次
# ["a", "b-c-d"]

轉換
replace()
str.replace(old, new[, max])

  • old 表示會被替換的字元,new 表示替換後的字元,max 為次數
temp_str = "this is a test"

print(temp_str.replace("is","IS"))
print(temp_str)

# thIS IS a test
# this is a test

空白處理

strip()

  • 移除左右邊的空格或指定的字元
  • 空白字元有可能包含換行或 tab,可使用 string.whitespace 來看那些被認為是空白字元
  • 指定的字元不看順序,"cba"代表有 a、b、c 的都會移除到不滿足為止
  • lstrip():只移除左側的空格或指定的字元
  • rstrip():只移除右側的空格或指定的字元
x = "  Hello, World  "

x.strip()
# "Hello, World"

x.lstrip()
# "Hello, World  "

x.rstrip()
# "  Hello, World"

y = "00124abc23100"
y.strip("012")

# "4abc23"
import string

print(string.whitespace)
# 不同的系統回傳可能會不同
# 特殊字元,也可能看到一堆空白

小補充

  • Django 的 CharField 在 1.9 版後,預設會作 strip,去除頭尾空白,不要想說怎麼值不一樣而找問題找半天

other

還有一些可能有機會用到的

  • find()rfind():搜尋文字回傳第一個字元的 index,rfind() 為從尾端開始
  • count():計算字數
  • lower():全部轉為小寫
  • upper():全部轉為大寫
  • startwith()endwith():是否以指定字串開頭或結尾
  • ljust()rjust()center():向左、向右或置中填滿空格或指定字元

參考資料

次回

來看看長字串跟格式化文字怎麼處理吧!


上一篇
Python 微進階 Day02 - Python 風格
下一篇
Python 微進階 Day04 - string(字串) - 2 - 長字串、格式化字串
系列文
Python 微進階31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言