【Python基础】字符串专题总结
這篇是字符串專題總結
除了常見的數值型,字符串是另一種常遇到的類型。一般使用一對單引號或一對雙引號表示一個字符串。
字符串中如果遇到 \ 字符,可能是在做字符轉義,所謂的轉義便是字符的含義發生改變,比如常用的\n 組合,轉義后不再表示字符n本身,而是完成換行的功能。
類似的,還有很多轉義字符,如 \t, 正則表達式中 \s,\d等等。
接下來一一總結字符串常見用法,此專題展開的思維導圖如下:
字符串專題思維導圖1 字符串創建
一般使用一對單引號或一對雙引號表示一個字符串。如下所示s 為字符串:
s?=?'python'?#?或?s?=?"python"很多情況下單引號和雙引號作用相同,但是一些情況還是存在微妙不同。
例如,使用一對雙引號("")時,打印下面字符串無需轉義字符(也就是\字符):
In?[10]:?print("That?isn't?a?horse") That?isn't?a?horse但是使用一對單引號打印時,卻需要添加轉義字符 \,如下所示:
In?[11]:?print('That?isn\'t?a?horse') That?isn't?a?horse除此之外,如果遇到字符串偏長,一行容不下來,需要展示為多行。一對三重單引號'''或三重"""就會派上用場,它們能輕松實現跨行輸入:
In?[12]:?print("""You're?just?pounding?two...:?coconut?halves?together.""") You're?just?pounding?two coconut?halves?together.2 \ 轉義
轉義的語法:一個\+單個字符,組合后單個字符失去原來字面意義,會被賦予一個新的功能。
常見的轉義字符:\n 完成換行,\t tab 空格等。
轉義的另外一個重要作用是用于Python的正則。正則不僅指使用模塊 re 完成字符串處理,還泛指很多常用包中函數的參數使用小巧的正則表達,比如數據分析必備包 pandas,str訪問器中 split, cat 等方法參數中使用轉義字符。
關于正則處理字符串的常見用法,后面會有一個單獨的專題總結。
3 字符串與數字
字符串與數字結合也會十分有用,可以玩出很多有趣的花樣。
數字n乘以字符串會克隆出n倍個原字符串:
In?[42]:?3*'py' Out[42]:?'pypypy'20乘以字符-會繪制出一條虛線:
In?[43]:?20*'-' Out[43]:?'--------------------'2個字符串常量能直接結合,中間不用添加任何東西,如下:
In?[14]:?'Py''thon' Out[14]:?'Python'單個字符還能與數值完成互轉,內置函數ord轉換單個字符為整型,chr函數轉換整數為單個字符:
In?[35]:?ord('振') Out[35]:?25391 In?[36]:?chr(25391) Out[36]:?'振'還能使用bytes函數將字符串轉為字節類型(bytes),使用str函數轉化字節類型為字符串:
s?=?'python' sa?=?bytes(s,encoding='utf-8') s?=?str(sa,encoding='utf-8')4 字符串打印及格式化
常規打印一個字符串比較簡單,如果打印字符串中含有變量,該怎么正確打印。一般有兩種方法:
使用 format 函數
字符串變量使用一對花括號{}, format 參數中指定變量的取值:
>>>?print("i?am?{0},age?{1}".format("tom",18)) i?am?tom,age?18f打印
f 后面緊跟一個字符串,其中花括號{}中直接寫出變量名稱,顯然這種含有變量的打印方法更加符合大多數人的習慣:
In?[45]:?tom?=?'tom' In?[46]:?age?=?18 In?[47]:?print(f'i?am?{tom},?age?{age}') i?am?tom,?age?18除了知道如何打印字符串,還有一項重要的事:如何控制字符串的打印。
雖然這是一個非常小的功能,但是知道一些常見的控制方法,卻能使得書寫更加簡潔。常見的控制打印用法:
輸出中如何控制保留兩位小數,整數補零填充,對齊,百分比格式打印,整數太長使用科學計數法打印等等??梢杂涀∪缦?strong>7種常見用法:
(1). 保留小數點后兩位
#?1?保留小數點后兩位 >>>?print("{:.2f}".format(3.1415926))? 3.14(2). 帶符號保留小數點后兩位
>>>?print("{:+.2f}".format(-1))? -1.00(3). 不帶小數位
>>>?print("{:.0f}".format(2.718))?#?不帶小數位 3(4). 整數補零,填充左邊, 寬度為3
>>>?print("{:0>3d}".format(5))?#?整數補零,填充左邊,?寬度為3 005(5). 以逗號分隔的數字格式
>>>?print("{:,}".format(10241024))?#?以逗號分隔的數字格式 10,241,024(6). 百分比格式
>>>?print("{:.2%}".format(0.718))?#?百分比格式 71.80%(7). 指數記法
>>>?print("{:.2e}".format(10241024))?#?指數記法 1.02e+075 字符串常見處理操作
字符串對應Python中的 str 類型,其內置封裝的方法有幾十個,下面列舉一些常用的必知的用法。
join 串聯多個字符串,注意Python中沒有單個字符這種類型,單個字符在Python中也會被當作str類型。如下連接多個字符串,最終打印出 Python串:
chars?=?['P',?'y',?'t',?'h',?'o',?'n'] name?=?''.join(chars)既然有串聯字符串,就應該有相反的操作:分割字符串,一般使用split函數,第一個參數指明分割字符串使用的分割符:
In?[49]:?'col1,col2,col3'.split(',') Out[49]:?['col1',?'col2',?'col3']split還有第二個參數指明需要做的分割次數,比如只做一次分割,得到如下兩個元素:
In?[51]:?'col1,col2,col3'.split(',',1) Out[51]:?['col1',?'col2,col3']split默認是從左側開始分割字符串,與之對應的另一個函數rsplit就是從右側開始分割字符串,某些場景rsplit函數更好用一些。從右側開始只做一次分割可以寫為:
In?[52]:?'col1,col2,col3'.rsplit(',',1) Out[52]:?['col1,col2',?'col3']除了以上兩個常用的方法,還有replace,startswith,strip,lstrip等等經常也會用到,在此不再一一舉例。
以上就是字符串處理的基本用法專題,主要總結了:
1 字符串創建
2 \ 轉義
3 字符串與數字
4 字符串打印及格式化
5 字符串常見處理操作
最后,以一個更有意思的小功能作為本專題的收尾。
已知下面一個長句,將其轉化為多行,每行只有11個字符。
words?=?'是想與朋友們分享一個再普通不過的道理:腳踏實地做些實事,哪怕是不起眼的小事,每天前進一點,日積月累會做出一點成績的。'借助內置的textwrap模塊中fill方法,實現每行11個字符:
import?textwrap r?=?textwrap.fill(words,11) print(r)?結果:
是想與朋友們分享一個再 普通不過的道理:腳踏實 地做些實事,哪怕是不起 眼的小事,每天前進一點 ,日積月累會做出一點成 績的。往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進群: 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的【Python基础】字符串专题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【职场】肺腑之言,给即将参加秋招的同学一
- 下一篇: 我用Python爬取并分析了30万个房产