在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'>
復(fù)制代碼
單雙引號混合使用
a = "LiMing say 'nice to meet you'"
復(fù)制代碼
同樣也可以通過轉(zhuǎn)義的方式不用在里面寫雙引號
a = "LiMing say \"nice to meet you\""
print(a)
復(fù)制代碼
總結(jié)就是需要外面用了雙引號盛撑,里面需要引用的語句可以用單引號括起來,反之亦然虚缎。
通常情況根據(jù)個人喜好撵彻,基本都是使用單引號或者雙引號。有些特殊情況实牡,比如需要表示多行時陌僵,可以選擇三個單(雙)引號,并且無序用\進行轉(zhuǎn)移创坞,可直接使用單引號和雙引號碗短。
a = '''
? ? My Name is 阿喵,
? ? Let's say 'Hello'
? ? '''
print(a)
復(fù)制代碼
字符串的下標和切換
?
下標:字符串是一個個字符拼接而成题涨,下標可以理解為每個字符的編號偎谁,從0開始依次類推。
作用:通過下標去操作字符串中的元素
# H的下標為0纲堵, e的下標為1 ..依次類推
a = 'HelloWorld'
# 獲取字符串a(chǎn)中下標為4的元素
print(a[4])? # o? 下標為4的元素為o
復(fù)制代碼
修改字符串中的元素是不是可以直接賦值呢巡雨? 例如:
a = 'HelloWorld'
a[4] = 'k'
print(a)
復(fù)制代碼
上面的代碼運行之后發(fā)現(xiàn)報錯。
TypeError: 'str' object does not support item assignment
復(fù)制代碼
原因是因為:字符串一旦創(chuàng)建之后席函,里面的元素是不可以修改的铐望。
所以字符串是無法直接進行修改的。
字符串運算
字符串運算中用到了+ 茂附、*正蛙、>、<营曼、!= 乒验、= 等邏輯運算符。
字符串的相加操作蒂阱,也可以理解為拼接操作锻全。例如:
a = 'Hello' + ' World'
print(a) # Hello World
# 也可以寫成
a = 'Hello' ' World'
print(a) # Hello World
復(fù)制代碼
字符串的乘法操作, 可以理解為克隆操作,字符串只能與整數(shù)(n)想乘,代表克隆n個字符串录煤。
a = 'a'
print(a * 2) # aa
b = '-'
print(b * 10) # ----------
復(fù)制代碼
切片
字符串的切片也稱為字符串截取虱痕。 所有操作都是通過字符串的下標進行操作的。
用法:字符串[開始索引(start):結(jié)束索引(end):步長(step)(默認1)]
步長(step):每隔(step-1)個取一個元素辐赞,當step為負數(shù)時部翘,代表從右向左取元素,
a = 'abcdefghijklmn'
# 從下標1開始 到4結(jié)束 進行切片? (包括1响委,不包括4新思,即左開又閉)
print(a[1:4]) # bcd
print(a[1:8]) # bcdefgh
print(a[1:8:2])# 步長為2窖梁, 結(jié)果:bdfh
# 當補償為負數(shù)時,代表逆向截取夹囚。 初始從坐標8開始纵刘,每隔一個元素取一個值,到下標為1時結(jié)束
print(a[8:1:-2]) # igec
復(fù)制代碼
字符串的常用操作
這里以代碼+注釋的方式荸哟,展示幾個常用的字符串操作假哎。
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結(jié)尾
print(n.endswith('o')) # True
# 字符串是全純英文字符
print(a.isalpha()) # False , 因為字符串a(chǎn)中 ' Hello World ' 有空格,因此返回False
print('HelloWorld'.isalpha()) #True
# 判斷字符串中是否全部為數(shù)字或者英文
print('Hello2World'.isalnum()) # True
print('123'.isalnum()) # True
print('abc&11'.isalnum()) # False
# 判斷是否為整數(shù)
print('123'.isdigit()) # True
print('1.23'.isdigit()) # False
# 判斷字符是否全為小寫
print('abc'.islower()) # True
# 判斷字符是否全為大寫
print('Abc'.isupper()) # False
print('ABC'.isupper()) # True
# 字符串小寫轉(zhuǎn)大寫
print('abc'.upper()) # ABC
# 字符串大寫轉(zhuǎn)小寫
print('ABC'.lower()) # abc
# 字符串的替換
b = 'aabbcc'.replace('a', 'm')
print(b) # mmbbcc
#? 1 代表替換的個數(shù)
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阿喵'惧蛹,
? ? 歡迎關(guān)注
? ? """
print(a.splitlines()) # ['', "? ? My Name is 'Python阿喵',", '? ? 歡迎關(guān)注', '? ? ']
復(fù)制代碼
字符串的查找
字符串查找常用的方法用index刑枝、find
兩者功能相似香嗓,區(qū)別在于find查找不到元素時返回 -1, 不會影響程序運行装畅,而index則會拋出異常靠娱。
a = 'abcdef'
# 查找到元素返回對應(yīng)的下標
print(a.find('c')) # 2
print(a.find('h')) # -1
print(a.index('c')) # 2
print(a.index('h')) # 拋出異常,ValueError: substring not found
復(fù)制代碼
rfind: 類似于find()函數(shù)掠兄,不過是從右邊開始查找;返回字符串最后一次出現(xiàn)的位置饱岸,如果沒有匹配項則返回-1 。rindex 同理
a = 'acmncd'
# 從右邊開始計算徽千,返回第一個匹配到的下標
print(a.rfind('c')) # 4
print(a.rindex('c')) # 4
復(fù)制代碼
字符串的格式化
name = 'Python阿喵'
# %s 用于輸出字符串
print('我的賬號是: %s' % name)
age = 18
# %d 用于輸出十進制數(shù)字
print('我的年齡是:%d' % age)
money = 1.23
# %f 浮點數(shù),默認顯示小數(shù)點后6位
print('我身上有:%f 元' % money )
# 指定小數(shù)點后的位數(shù)
print('我身上有:%.2f 元' % money )
復(fù)制代碼
format操作
?
除了使用 % 進行格式化汤锨,也可以使用format
print('{} {}'.format('Hello', 'World')) # Hello Worldprint('{0} {1}'.format('Hello', 'World')) # Hello Worldprint('賬號{name}双抽, 分享{code} 技術(shù)'.format(name='Python阿喵', code='Python')) # 賬號Python阿喵, 分享Python 技術(shù)print('{1}, {0}, {1}'.format('A', 'B')) #B, A, Bprint('今年是 {}年.'.format(2020)) # 今年是 2020年.復(fù)制代碼
最后多說一句闲礼,小編是一名python開發(fā)工程師牍汹,這里有我自己整理的一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)柬泽、爬蟲慎菲、數(shù)據(jù)分析、數(shù)據(jù)可視化锨并、機器學(xué)習(xí)等露该。想要這些資料的可以關(guān)注小編,并在后臺私信小編即可領(lǐng)取第煮。
本文章素材來源于網(wǎng)絡(luò)解幼,如有侵權(quán)請聯(lián)系刪除抑党。