盤點Python中字符串的常用操作

2021-02-19 Python極客專欄

點擊這段文字: 獲取2020年,最強Python學習資料

在Python中字符串的表達方式有四種

a = 'abc'
b= "abc"
c = '''abc'''
d = """abc"""
print(type(a)) # <class 'str'>
print(type(b)) # <class 'str'>
print(type(c)) # <class 'str'>
print(type(d)) # <class 'str'>

單雙引號混合使用

a = "LiMing say 'nice to meet you'"

同樣也可以通過轉義的方式不用在裡面寫雙引號

a = "LiMing say \"nice to meet you\""
print(a)

總結就是需要外面用了雙引號,裡面需要引用的語句可以用單引號括起來,反之亦然。

通常情況根據個人喜好,基本都是使用單引號或者雙引號。有些特殊情況,比如需要表示多行時,可以選擇三個單(雙)引號,並且無序用\進行轉移,可直接使用單引號和雙引號。

a = '''
    My Name is 阿亮,
    Let's say 'Hello'
    '''
print(a)

字符串的下標和切換

下標:字符串是一個個字符拼接而成,下標可以理解為每個字符的編號,從0開始依次類推。

作用:通過下標去操作字符串中的元素

# H的下標為0, e的下標為1 ..依次類推
a = 'HelloWorld'

# 獲取字符串a中下標為4的元素
print(a[4])  # o  下標為4的元素為o

修改字符串中的元素是不是可以直接賦值呢?例如:

a = 'HelloWorld'

a[4] = 'k'
print(a)

上面的代碼運行之後發現報錯。

TypeError: 'str' object does not support item assignment

原因是因為: 字符串一旦創建之後,裡面的元素是不可以修改的。

所以字符串是無法直接進行修改的。

字符串運算

字符串運算中用到了+ 、*、>、<、!= 、= 等邏輯運算符。

字符串的相加操作,也可以理解為拼接操作。例如:

a = 'Hello' + ' World'
print(a) # Hello World

# 也可以寫成
a = 'Hello' ' World'
print(a) # Hello World

字符串的乘法操作, 可以理解為克隆操作,字符串只能與整數(n)想乘,代表克隆n個字符串。

a = 'a'
print(a * 2) # aa
b = '-'
print(b * 10) # 

切片

字符串的切片也稱為字符串截取。所有操作都是通過字符串的下標進行操作的。

用法:字符串[開始索引(start):結束索引(end):步長(step)(默認1)]

步長(step):每隔(step-1)個取一個元素,當step為負數時,代表從右向左取元素,

a = 'abcdefghijklmn'

# 從下標1開始 到4結束 進行切片  (包括1,不包括4,即左開又閉)
print(a[1:4]) # bcd
print(a[1:8]) # bcdefgh
print(a[1:8:2])# 步長為2, 結果:bdfh

# 當補償為負數時,代表逆向截取。 初始從坐標8開始,每隔一個元素取一個值,到下標為1時結束
print(a[8:1:-2]) # igec

字符串的常用操作

這裡以代碼+注釋的方式,展示幾個常用的字符串操作。

a = ' Hello World '

# 獲取字符串的長度
print(len(a)) # 13

# 刪除字符串兩邊的空格
print(a.strip()) # Hello World

# 刪除左邊的空格
print(a.lstrip()) # Hello World (只刪除左邊的空格)

# 刪除字符串右邊的空格
print(a.rstrip()) #  Hello World

# 通過指定連接符 連結字符串
lst = ['LiMing', 'Tom']
print('***'.join(lst)) # LiMing***Tom

# 首字母大寫
m = 'hello world'
print(m.capitalize()) # Hello world
# 返回標題化字符串,即每個單詞首字母大寫
print(m.title()) # Hello World

# 列印輸出字符,將字符串放在中間,
# center(width, fillchar)   width: 字符串的總長度, fillchar:填充字符
print(a.center(20, '*')) # *** Hello World ****

# 是否以xxx開頭
n = 'Hello'
print(n.startswith('H')) # True

# 是否以xxx結尾
print(n.endswith('o')) # True

# 字符串是全純英文字符
print(a.isalpha()) # False , 因為字符串a中 ' Hello World ' 有空格,因此返回False
print('HelloWorld'.isalpha()) #True

# 判斷字符串中是否全部為數字或者英文
print('Hello2World'.isalnum()) # True
print('123'.isalnum()) # True
print('abc&11'.isalnum()) # False

# 判斷是否為整數
print('123'.isdigit()) # True
print('1.23'.isdigit()) # False

# 判斷字符是否全為小寫
print('abc'.islower()) # True

# 判斷字符是否全為大寫
print('Abc'.isupper()) # False
print('ABC'.isupper()) # True

# 字符串小寫轉大寫
print('abc'.upper()) # ABC

# 字符串大寫轉小寫
print('ABC'.lower()) # abc

# 字符串的替換
b = 'aabbcc'.replace('a', 'm')
print(b) # mmbbcc
#  1 代表替換的個數
b = 'aabbcc'.replace('a', 'm', 1)
print(b) # mabbcc

# split 字符串切割,默認空格切割
print('aa bb cc'.split()) # ['aa', 'bb', 'cc']
print('ab,cd,ef'.split(',')) # ['ab', 'cd', 'ef']

# 字符串換行分割
a = """
    My Name is 'Python極客專欄',
    歡迎關注
    """
print(a.splitlines()) # ['', "    My Name is 'Python極客專欄',", '    歡迎關注', '    ']

字符串的查找

字符串查找常用的方法用index、find

兩者功能相似,區別在於find查找不到元素時返回 -1, 不會影響程序運行,而index則會拋出異常。

a = 'abcdef'
# 查找到元素返回對應的下標
print(a.find('c')) # 2
print(a.find('h')) # -1

print(a.index('c')) # 2
print(a.index('h')) # 拋出異常,ValueError: substring not found

rfind: 類似於find()函數,不過是從右邊開始查找;返回字符串最後一次出現的位置,如果沒有匹配項則返回-1 。rindex 同理

a = 'acmncd'
# 從右邊開始計算,返回第一個匹配到的下標
print(a.rfind('c')) # 4
print(a.rindex('c')) # 4

字符串的格式化

name = 'Python極客專欄'
# %s 用於輸出字符串
print('我的公眾號是: %s' % name)
age = 18
# %d 用於輸出十進位數字
print('我的年齡是:%d' % age)
money = 1.23
# %f 浮點數,默認顯示小數點後6位
print('我身上有:%f 元' % money )
# 指定小數點後的位數
print('我身上有:%.2f 元' % money )

format操作

除了使用 % 進行格式化,也可以使用format

print('{} {}'.format('Hello', 'World')) # Hello World
print('{0} {1}'.format('Hello', 'World')) # Hello World

print('公眾號{name}, 分享{code} 技術'.format(name='Python極客專欄', code='Python')) # 公眾號Python極客專欄, 分享Python 技術

print('{1}, {0}, {1}'.format('A', 'B')) #B, A, B

print('今年是 {}年.'.format(2020)) # 今年是 2020年.

最後還是希望你們能給我點一波小小的贊或者在看~

如有文章對你有幫助,

「在看」和轉發是對我最大的支持


關注Python極客專欄

相關焦點

  • Python中字符串的操作處理
    學習了字符串的基本用法和簡單格式化,我們再來看一下常用字符串類型的操作。對字符串,Python提供了3個基本的操作符,如下表:演示如下:>>> x = '一個'>>> y = '字符串'>>> x+y'一個字符串'>>> x*3'一個一個一個'>>> s = '某個字符串'>>>
  • 一文看懂Python列表、元組和字符串操作
    序列1 列表列表(List)是Python中非常重要的內置數據類型。列表由一系列元素組成,所有的元組被包含在一對方括號中。列表被創建將後,可以執行添加、刪除、修改操作。列表中可包含任意的Python數據信息,如字符串、數字、列表、元組等。
  • python中字符串的基本操作匯總
    字符串是文本操作的核心,在python中字符串是string類的實例,在string模塊中,定義了很多的常量>>> import string>>> string.ascii_letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  • 對比python字符串函數,學習pandas的str矢量化字符串函數
    我們不僅要學會怎麼處理單個字符串,這個就需要學習「python字符串函數」,我們還要學會怎麼處理二維表格中每一列每一格的字符串,這個就需要學習「pandas的str矢量化字符串函數」。今天我們採用對比的方式,帶大家總結常用的字符串函數,希望這篇文章能夠對大家起到很好的作用。
  • 對比python字符串函數,輕鬆學習pandas的 str 矢量化字符串函數
    1.概述python字符串應該是python裡面最重要的數據類型了,因此學會怎麼處理各種各樣的字符串,顯得尤為重要。我們不僅要學會怎麼處理單個字符串,這個就需要學習「python字符串函數」,我們還要學會怎麼處理二維表格中每一列每一格的字符串,這個就需要學習「pandas的str矢量化字符串函數」。今天我們採用對比的方式,帶大家總結常用的字符串函數,希望這篇文章能夠對大家起到很好的作用。
  • Python拼接字符串的七種方式
    公眾號Python貓, 專注python技術、數據科學和深度學習,力圖創造一個有趣又有用的學習分享平臺。忘了在哪看到一位編程大牛調侃,他說程式設計師每天就做兩件事,其中之一就是處理字符串。相信不少同學會有同感。幾乎任何一種程式語言,都把字符串列為最基礎和不可或缺的數據類型。而拼接字符串是必備的一種技能。今天,我跟大家一起來學習Python拼接字符串的七種方式。
  • 用Python拼接字符串的常用方法及性能分析
    前幾篇文章,我們對Python常用的操作技能進行了匯總。今天,我們來梳理一下Python拼接字符串的幾種常用方法,並對方法進行比較。本篇不會全部進行匯總,旨在通過幾種常用的方法在不同條件下性能進行對比,為大家提供一種字符串使用的指導意見。大家選擇自己熟悉的掌握並使用即可,不需要全部進行記憶(留下大腦空間記點別的東西……)。常見的字符串拼接方式「+」操作符拼接「+」操作符連接字符串是Python中比較經典的字符串拼接方式。可以使用「+」將兩個字符串直接進行拼接。
  • Python字符串(Python學習筆記02)
    字符串Python 3 中的字符串可以使用雙引號或單引號標示,如果字符串出現引號,則可以使用 來去除引號標示字符串的作用。在python中,字符串中的字符是通過索引來提取的,索引從0開始,第一個字符的索引為0,第二個字符的索引為1,以此類推。python 字符串的索引可以取負值,表示從末尾提取,最後一個字符的索引為 -1,倒數第二個字符的索引為-2,即程序認為可以從結束處反向計數。簡單的示例:切片切片即獲取字符串的片段,格式為 [頭索引:尾索引:步長]。
  • python數據類型總結——數字和字符串
    當一個變量指向的內存空間中,存放的是一個不可變的數據類型時,要改變該變量對應的值,就必須重新分配一塊新的內存空間來存放新值,並將新的內存空間地址提供給變量。python中,定義了五個標準的數據類型,分別是數字,字符串,列表,元組,字典。它們足以幫助你完成對生活中絕大部分事物的特徵描述。
  • 詳解 Python 拼接字符串的 7 種方式
    幾乎任何一種程式語言,都把字符串列為最基礎和不可或缺的數據類型。而拼接字符串是必備的一種技能。今天,我跟大家一起來學習Python拼接字符串的七種方式。這種方式最常用、直觀、易懂,是入門級的實現方式。但是,它也存在兩處讓人容易犯錯的地方。首先,新入門編程的同學容易犯錯,他們不知道字符串是不可變類型,新的字符串會獨佔一塊新的內存,而原來的字符串保持不變。上例中,拼接前有兩段字符串,拼接後實際有三段字符串。
  • Python語言中字符串的拆分,連接及拼接
    幸運的是,與其它語言甚至舊版本的Python語言相比,Python語言對字符串的操作非常簡單。您將從本文中學習一些最基本的字符串操作:拆分,連接和拼接。 您不僅將學習如何使用這些工具,而且還將深入了解它們是如何工作。
  • Python入門之字符串基本操作(Python官方文檔翻譯)
    . \ can be used to escape quotes: 除了數字,Python還可以操作字符串,單引號('...')與雙引號(「…」)與相同的結果[ 2 ]。The print() function produces a more readable output, by omitting the enclosing quotes and by printing escaped and special characters:在交互解釋器中,輸出字符串用引號括起來,特殊字符用反斜槓進行轉義。
  • [快學Python3]String(字符串)
    概述字符串是Python中最常用的數據類型,通常我們使用引號(單引' 或 雙引" 或 三引號""")來創建字符串
  • Python數據類型之字符串
    # 字符串是python中最常用的數據類型,我們可以使用引號來創建字符串,引號可以是單引號,雙引號或三引號,本質上單引號和雙引號以及三引號的作用是一樣的 # 字符串是一種不可變的序列類型,單個字符從左到右按照順序排列,同時修改某個位置的字符是不被允許的 #
  • Python語言中字符串的拆分,連接及拼接(下篇)
    ,我們對Python中最基本的字符串操作(拆分,連接和拼接)做了基本的介紹,但還有一整套字符串方法可以使您更輕鬆地處理字符串。在掌握了這些基本字符串操作後,您可能想了解更多信息。 正好我們還有許多很棒的教程可以幫助您掌握Python的各項功能,從而實現更精巧地的對字符串進行處理:參加測驗:使用我們的交互式「Python語言中字符串的拆分,連接和拼接」測驗來測試您的知識。
  • 你真的知道 Python的 字符串是什麼嗎?
    字符串是一種序列,這意味著它具備序列類型都支持的操作:# 以下的s、t皆表示序列,x表示元素x in s  # 若s包含x,返回True,否則返回Falsex not in s  # 若s包含x,返回False,否則返回Trues + t  # 連接兩個序列s * n  # s複製n次s[i]   # s的索引第i項s[
  • 【Python字符串操作】字符串分割函數
    對於長字符串,我們一般要怎麼處理呢?除了切片,但是切片太麻煩了。python為我們提供了字符串切割函數,它不僅可以通過指定字符切割,也可以去除空格符哦。1.split()語法:str.split(str=' ', num=string.count(str))描述:通過指定分隔符對字符串進行切片,如果參數num有指定值,則僅分隔num個子字符串
  • Python中的轉義字符串與格式化字符串
    # 格式化字符串# 常用佔位符# %s 格式化字符串# %d 格式化整數格式化字符串# 轉義字符串# \\# \'># \''# \n# \t# r串 如果字符串中很多字符串需要轉義,可以使用r保持原有格式# 給「是「加雙引號,需轉義,否則無法添加# print("數字1.222"是"小數")
  • Python中使用%操作符格式化字符串
    那麼Python中的格式化字符串是不是「清零」字符串呢?那不就是直接刪除字符串了嗎?只有學了才知道,事實上磁碟格式化和Python字符串格式化完全不是一碼事!這些預留的空位,提前使用指定的特殊字符佔據,而且這些指定的特殊字符被字符串替代後就不會在顯現出來了。在Python中,提供了兩種格式化字符串的方法。今天先來學習第一種:使用「%」(百分號)操作符實現格式化字符串。
  • python格式化字符串研究
    前言與隊友交流時提及python的格式化字符串漏洞,這個漏洞之前接觸不多,所以寫篇文章從基礎部分仔細研究了研究。python環境是python3.7。Python3裡的格式化字符串python3中的格式化字符串主要有以下兩種形式:"test %s" % ('test')"test {0}".format('test')這兩個語句的輸出都是test test。