[Python 3系列]字符串操作
一、處理字符串
特殊符號
▎如何在字符串內使用特殊符號?
>>> text1=‘His cat‘s name is Tom.‘ File "<stdin>", line 1 text1=‘His cat‘s name is Tom.‘ ^ SyntaxError: invalid syntax >>> text1=‘His cat\‘s name is Tom.‘ ##“\”轉義字符 >>> text2="His cat‘s name is Tom." ##可以使用雙引號開始和結束 >>> print(r‘His cat\‘s name is Tom.‘) ##原始字符串 His cat\‘s name is Tom. >>> text1 "His cat‘s name is Tom." >>> text2 "His cat‘s name is Tom."
▎轉義字符:
\‘ 單引號
\" 雙引號
\t 制表符
\n 換行符
\\ 倒斜杠
>>> print("\tHis cat‘s name is \nTom.") His cat‘s name is Tom.
三重引號
多行字符串的起止是3個單引號或3個雙引號。“三重引號”之間所有引號、制表符或換行,都被認為是字符串的一部分。python的代碼塊縮進規則不適用於多行字符串。
多行字符串還常常用作多行註釋。
>>> print(‘‘‘Hello, ... Can you find my World. ... via Tom.‘‘‘) Hello, Can you find my World. via Tom.
字符串切片
字符串像列表一樣,使用下標和切片。
字符串切片並沒有修改原來的字符串。
>>> text1=‘His cat\‘s name is Tom.‘ >>> text1[:10] "His cat‘s " >>> text2="His cat‘s name is Tom." >>> text2[:10] "His cat‘s "
in和not in
測試第一個字符串(精確匹配)是否在第二個字符串中。
>>> text1=‘His cat\‘s name is Tom.‘ >>> "cat" in text1 True >>> "tom" not in text1 True
二、字符串方法
大小寫
upper()和lower()字符串方法返回一個新字符串,其中原字符串的所有字母都被相應地轉換為大寫或小寫。字符串中非字母字符保持不變。
>>> text1=‘His cat\‘s name is Tom.‘ >>> text1.upper() "HIS CAT‘S NAME IS TOM." >>> text1.lower() "his cat‘s name is tom." >>> text1 ##這些方法沒有改變字符串本身,而是返回一個新字符串。 "His cat‘s name is Tom."
isupper()和islower()方法用來判斷字符串內所有字母是否都是大寫或小寫。
>>> ‘Hello‘.islower() False >>> ‘Hello‘.isupper() False >>> ‘Hello‘.upper().isupper() True >>> ‘Hello‘.lower().islower() True >>> ‘Hello123‘.lower().islower() True >>> ‘Hello123‘.upper().isupper() True
▎其他常用的判斷字符串方法:
isalpha()返回True,如果字符串只包含字母,並且非空;
isalnum()返回True,如果字符串只包含字母和數字,並且非空;
isdecimal()返回True,如果字符串只包含數字,並且非空;
isspace()返回True,如果字符串只包含空格、制表符和換行,並且非空;
istitle()返回True,如果字符串只包含首字母大寫、後面都是小寫字母的單詞;
開始和結束
startswith()和endswith()方法返回True,如果它們所調用的字符串以該方法傳入的字符串開始或結束。否則,方法返回False。
>>> text1=‘His cat\‘s name is Tom.‘ >>> text1.startswith(‘His cat‘) True >>> text1.startswith(‘his cat‘) False >>> text1.endswith(‘om.‘) True >>> text1.endswith(‘.‘) True
插入與分割
join()方法在一個字符串上調用,參數是一個字符串列表,返回一個字符串。返回的字符串由傳入的列表中每個字符串連接而成。
調用join()方法的字符串,被插入到列表參數中每個字符串的中間。
join()方法是針對一個字符串而調用的,並且傳入一個列表值。
>>> ‘#‘.join([‘Tom‘,‘Jack‘,‘Mike‘,‘Alice‘]) ‘Tom#Jack#Mike#Alice‘ >>> ‘\n‘.join([‘Tom‘,‘Jack‘,‘Mike‘,‘Alice‘]) ‘Tom\nJack\nMike\nAlice‘
split()方法針對一個字符串調用,返回一個字符串列表。
默認按照各種空白字符分割,如空格、制表符或換行符。
一個常見的split()用法,是按照換行符分割多行字符串。
>>> text ‘Tom\nJack\nMike\nAlice‘ >>> text.split() [‘Tom‘, ‘Jack‘, ‘Mike‘, ‘Alice‘] >>> text.split(‘i‘) [‘Tom\nJack\nM‘, ‘ke\nAl‘, ‘ce‘]
對齊文本
rjust()和ljust()字符串方法返回調用它們的字符串的填充版本,通過插入空格來對齊文本。
這兩個方法的第一個參數是一個整數長度,用於對齊字符串。第二個可選參數是指定一個填充字符,取代空格字符。
center()字符串方法與rjust()和ljust()類似,但它讓文本居中。
利用這三個方法確保字符串整齊對齊,即使不清楚有多少字符。
>>> ‘Hello‘.rjust(10) ‘ Hello‘ >>> ‘Hello‘.ljust(20) ‘Hello ‘ >>> ‘Hello‘.center(20,‘-‘) ‘-------Hello--------‘ >>> ‘Hello‘.rjust(10).ljust(20) ‘ Hello ‘ >>> ‘Hello‘.rjust(10).ljust(20,‘-‘) ‘ Hello----------‘
刪除空白字符
strip()字符串方法將返回一個新的字符串,它的開頭或末尾都沒有空白字符。
lstrip()和rstrip()方法將相應刪除左邊或右邊的空白字符。
有一個可選參數,指定兩邊的哪些字符應該刪除。
>>> text=‘ Hello World ‘ >>> text.strip() ‘Hello World‘ >>> text.lstrip() ‘Hello World ‘ >>> text.rstrip() ‘ Hello World‘ >>> text.strip(‘Held ‘) ‘o Wor‘
拷貝粘貼字符串
pyperclip模塊有copy()和paste()函數,可以向計算機的剪貼板發送文本,或從它接收文本。
▎pyperclip模塊不是python自帶的,需要安裝。
[[email protected] src]# wget https://bootstrap.pypa.io/get-pip.py ...... 2017-07-15 03:11:16 (24.4 KB/s) - 已保存 “get-pip.py” [1595408/1595408]) [[email protected] src]# python get-pip.py ...... Successfully installed pip-9.0.1 setuptools-36.2.0 wheel-0.29.0 [[email protected] src]# pip -V pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7) [[email protected] src]# pip install pyperclip Collecting pyperclip Downloading pyperclip-1.5.27.zip Building wheels for collected packages: pyperclip Running setup.py bdist_wheel for pyperclip ... done Stored in directory: /root/.cache/pip/wheels/0b/fe/d7/1ab1ec7a91dc707d04b872214f6ce617f1b04a027de12fd4fe Successfully built pyperclip Installing collected packages: pyperclip Successfully installed pyperclip-1.5.27
>>> import pyperclip >>> pyperclip.copy(‘Hello World‘) >>> pyperclip.paste() ‘Hello World‘
本文出自 “亂碼時代” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1947923
[Python 3系列]字符串操作