前言
在當今計算機編程領域中,Python語言以其簡潔、優(yōu)雅和易讀的特性,成為了最受歡迎的編程語言之一。其中的字符串處理是Python編程中不可或缺的技術之一。本篇博客將介紹Python字符串的基本概念,包括字符串的定義、索引和切片操作。我們將深入探討字符串的常用方法,如查找、替換、拆分和連接。
通過本篇博客,我們將一同探索Python字符串的奧秘,解密其在Python編程中的秘密武器地位。讓我們一起開啟這段精彩的Python字符串之旅吧!??????
什么是 python 字符串
在 python 中,字符串是指用 ’ ’ 、" “、‘’’ ‘’'、”“” “”" 包含起來的所有字符。
message = '我愛python'
print(type(message))
message = "我愛python"
print(type(message))
message = '''我愛python'''
print(type(message))
不僅如此,當我們使用三引號作為字符串標志的時候,我們可以使用回車鍵將字符串分割,使之還是一個字符串,并且我們打印這個字符串的時候,字符串中也會出現(xiàn)換行。
message = '''我愛
python'''
print(message)
print(type(message))
但是單引號就不能達到三引號字符串這種效果。當我們在單引號字符串之間敲回車鍵的時候,我們會發(fā)現(xiàn),字符串會被自動分割成兩對引號之間使用 \ 連接的字符串,并且打印的時候不會出現(xiàn)換行。
message = '我愛' \
'python'
print(message)
print(type(message))
當我們的字符串中的內(nèi)容也含有引號時,我們需要做出相應的操作來進行區(qū)別。
message = '我愛\'python\''
message = "我愛'python'"
通過下標(索引)來訪問字符串中的字符
字符串序列[n]
這里的下標(索引)是從0開始的。
message = 'I love python'
print(message[0])
print(message[1])
print(message[3])
下標(索引)值不能大于字符串長度-1
message = 'I love python'
print(len(message)) # len() 用來獲取字符串長度 13
print(message[13])
字符串的切片操作
切?是指對操作的對象截取其中一部分的操作。字符串、列表、元組都支持切片操作。
字符串序列[開始位置下標 : 結束位置下標 : 步長]
注意:
- 不包括結束位置下標對應的數(shù)據(jù),正負整數(shù)都可以。
- 步長是選取間隔,正負整數(shù)均可,默認步長為1。
message = 'abcdef'
print(message[0:4:1]) # abcd
message = 'abcdef'
print(message[0:4:2])
1)當省略開始位置的下標時,默認從0下標處開始
message = 'abcdef'
print(message[:4:1])
2)當省略結束位置的下標時,默認到最后一個字符結束
message = 'abcdef'
print(message[0::1])
3)當開始位置下標和結束位置下標都省略時,表示從0下標開始到字符串的結尾
message = 'abcdef'
print(message[::1])
4)當省略步長的時候,默認步長為1
message = 'abcdef'
print(message[0:4:])
5)當步長為負數(shù)時,表明是從字符串的尾部開始到字符串的開頭的方向
message = 'abcdef'
print(message[4:0:-1])
那么有人會問了,我可以將開始位置和結束位置調(diào)換一下嗎?答案是不可以的,為什么呢?因為 步長的方向需要跟開始位置到結束位置的方向相同。
message = 'abcdef'
print(message[0:4:-1])
在這里開始位置到結束位置的方向是從字符串開頭到結尾的,而步長為負數(shù),則表明步長方向是從字符串尾部到字符串開頭的,兩者方向不相同。
6)當開始位置或者結束位置為負整數(shù)時,表示從字符串尾部開始
-1索引表示字符串的最后一個字符,-2表示倒數(shù)第二個字符
message = 'abcdef'
print(message[-1])
print(message[-2])
message = 'abcdef'
print(message[-4:-1:1])
那么這種時候,步長可以為負數(shù)嗎?我們來看看。
message = 'abcdef'
print(message[-4:-1:-1])
7)當都省略的時候,則會把字符串從前往后打印一遍
message = 'abcdef'
print(message[::])
字符串常用的方法
find() 查找子串
字符串序列.find(子串,開始位置下標,結束位置下標)
從字符串開始位置開始,到結束位置結束,查找是否有指定的子串,如果有就返回第一個子串第一個字符出現(xiàn)的位置的下標,沒有則返回-1。不包括結束位置的下標。
message = 'I love python'
print(len(message))
print(message.find('python',2,12))
message = 'I love python'
print(len(message))
print(message.find('python',2,13))
如果省略開始位置下標,則表明從0下標處開始;如果省略結束位置下標,則表明到字符串末尾結束(包括最后一個字符);都省略,則表明在整個字符串中查找。
index() 查找子串
字符串序列.index(子串,開始位置下標,結束位置下標)
index() 方法跟 find() 方法的使用基本相同,只是當字符串中沒有找到子串的時候會報錯。
message = 'I love python'
print(message.index('Java'))
rfind() / rindex()
這里表明從字符串的右邊向左邊查找,其他的方法是一樣的。
count() 返回某個子串在字符串中出現(xiàn)的次數(shù)
字符串序列.count(子串,開始位置下標,結束位置下標)
count() 方法表明從開始位置開始到結束位置結束,看子串在字符串中出現(xiàn)的次數(shù),如果沒有則返回0。
message = 'A man who is handsome said that I am a handsome man'
print(message.count('handsome'))
message = 'A man who is handsome said that I am a handsome man'
print(message.count('handsome',18))
replace() 替換
字符串序列.replace(舊子串,新子串,替換次數(shù))
replace() 方法是指將字符串中 n 個舊子串替換成新子串
message = 'A man who is handsome said that I am a handsome man'
print(message.replace('man','woman',1))
print(message.replace('man','woman',2))
當我們修改完成之后,我們再打印原字符串可以發(fā)現(xiàn),原字符串并沒有被修改。
message = 'A man who is handsome said that I am a handsome man'
print(message.replace('man','woman',1))
print(message.replace('man','woman',2))
print(message)
這說明在 python 中,字符串是不可變的數(shù)據(jù)類型。
split() 按照指定字符分割字符串
字符串序列.split(分割字符,num)
split() 方法是指將字符串以 num 個分割符號,分割成 num + 1 部分,返回一個列表類型的數(shù)據(jù)。并且分割后,該分割字符會消失。
message = 'A man who is handsome said that I am a handsome man'
print(message.split('handsome',1))
print(message.split('handsome',2))
print(type(message.split('handsome',1)))
join() 用一個字符或者子串合并含有多個字符串的序列
字符或者子串.join(多字符串組成的序列)
message = ['我','愛','中國']
print('哈哈'.join(message))
message = ['我','愛','中國']
print(''.join(message))
capitalize() 將字符串的第一個字符大寫,其余的字符小寫
字符串序列.capitalize()
message = 'i love python'
print(message.capitalize())
title() 將字符串每個單詞的首字母大寫
字符串序列.title()
message = 'i love python'
print(message.title())
lower() 將字符串中的字符都轉(zhuǎn)換為小寫
字符串序列.lower()
message = 'I love Python'
print(message.lower())
upper() 將字符串中的字符都轉(zhuǎn)換為大寫
字符串序列.upper()
message = 'I love Python'
print(message.upper())
lstrip() 刪除字符串左邊部分多余的空白
字符串序列.lstrip()
message = ' I love python '
print(message.lstrip())
rstrip() 刪除字符串右邊部分多余的空白
字符串序列.rstrip()
message = ' I love python '
print(message.rstrip())
strip() 刪除字符串左邊部分和右邊部分多余的空白
字符串序列.strip()
message = ' I love python '
print(message.strip())
ljust() 左對齊
字符串序列.ljust(長度,填充字符)
message = 'I love python'
print(message.ljust(20,'。'))
rjust() 右對齊
字符串序列.rjust(長度,填充字符)
message = 'I love python'
print(message.rjust(20,'。'))
center() 居中對齊
字符串序列.center(長度,填充字符)
message = 'I love python'
print(message.center(20,'。'))
這里居中是盡可能居中,不可能做到完全居中。
startswith() 判斷字符串是否是以某子串開頭
字符串序列.startswith(子串,開始位置下標,結束位置下標)
message = 'I love python'
print(message.startswith("I"))
print(message.startswith("love"))
endswith() 判斷字符串是否以某一字串結束
字符串序列.endswith(子串,開始位置下標,結束位置下標)
message = 'I love python'
print(message.endswith('python'))
print(message.endswith('python',9,13))
isalpha() 判斷字符串是否只包含字母
字符串序列.isalpha()
message = 'I love python'
print(message.isalpha())
注意空格不算字母
message = 'abcdef'
print(message.isalpha())
isdigit() 判斷字符串是否只包含數(shù)字
字符串序列.isdigit()
message = '12345'
print(message.isdigit())
isalnum() 判斷字符串是否只包含字母、數(shù)字、數(shù)字字母組合
字符串序列.isalnum()
message = 'abcdef1234'
print(message.isalnum())
message = 'abcdef'
print(message.isalnum())
isspace() 判斷字符串是否只有空格
字符串序列.isspace()
message = ' '
print(message.isspace())
文章來源:http://www.zghlxwxcb.cn/news/detail-511740.html
總結
希望文章能夠?qū)Υ蠹矣兴鶐椭?,如有錯誤,歡迎指正,也歡迎大家訂閱我的python學習專欄??????文章來源地址http://www.zghlxwxcb.cn/news/detail-511740.html
到了這里,關于編織魔法:探索Python字符串的奇幻世界的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!