個人主頁:黃小黃的博客主頁
️ 支持我: 點贊 收藏 關注
格言:一步一個腳印才能承接所謂的幸運本文來自專欄:Python基礎教程
歡迎點擊支持訂閱專欄 ️
本文講述了高級變量——字符串的相關知識,並對字符串的常見操作進行了歸納總結:對空白字符的處理,字符串查找,字符串逆序,字符串判斷,大小寫問題等。 另外,也對 Python
中的 切片方法進行了總結。
如果想了解 列表、元組、字典的相關知識,請查閱博主的上篇文章,超鏈接附上,點擊即可到達:【Python】高級變量通關教程上篇(列表、元組、字典)
簡介:
Python
中使用 一對雙引號、一對單引號 定義一個字符串;for
循環遍歷。關於引號的幾點說明:
學習過其他編程語言的小伙伴想必都知道,我們可以使用轉義字符,比如:\''
或者 \'
,但是在 Python
實際使用中,建議:
"
,可以使用 '
來定義字符串;’
,可以使用 "
來定義字符串;下面的代碼定義了一個字符串:我是’黃小黃’同學
str = "我是'黃小黃'同學"
str 字符串存儲結構圖如下:
嘗試使用 for 逐個字符遍歷並打印
str = "我是'黃小黃'同學"
for char in str:
print(char)
這裡僅粗略展示
python
中的字符串可以使用的方法,大家只需要熟悉有個大概的認識即可,後面會對具體的方法作詳細解釋。
1️⃣ 判斷字符串(返回值為布爾型):
2️⃣ 查找與替換字符串:
3️⃣ 大小寫轉換:
4️⃣ 對字符串的空白字符進行處理:
5️⃣ 對字符串進行拆分和連接:
看到這兒,想必大家也覺得好多啊!這裡博主只是列舉了我們常用的一些方法,還有例如字符串對齊等的方法沒有給出,其實,這些不用特意去記憶,使用多了自然就記住了,當忘記的時候,記得多動手,去查閱相關的方法說明~~~
️相關方法一覽表:
示例代碼:
str = "我是'黃小黃'同學"
# 統計字符串長度
str_len = len(str)
print("字符串的長度為: %d" % str_len)
# 統計子串出現的次數
son_str_count = str.count("黃小黃")
print('子字符串"黃小黃"出現的次數: %d' % son_str_count)
# 統計子串出現的位置
son_str_index = str.index("黃小黃")
print('"黃小黃"出現的索引位於原字符串: %d' % son_str_index)
結果:
在概述裡,我們學習了許多判斷字符串的方法,其中我們介紹到 isspace()
方法用於判斷字符串是否全部為空格,實際上,\t
\n
\r
也可以,相關方法的例子放在下面的代碼裡,答案還是老樣子,放在注釋中。
️ 代碼示例:
# 1.判斷空白字符
str1 = ' \t \r \n'
print(str1.isspace()) # True
# 2.判斷字符串是否為數字
str2 = '123456五'
print(str2.isdecimal()) # False
print(str2.isdigit()) # False
print(str2.isnumeric()) # True
str3 = '1.444'
print(str3.isdecimal()) # False
print(str3.isdigit()) # False
print(str3.isnumeric()) # False
從例子中我們還可以看出:三種判斷數字的方法均沒辦法判斷小數,另外,isnumeric() 方法還可以判斷出中文數字,三種判斷數字的方法范圍依次增加,實際開發中,我們一般使用的是 isdecimal() 方法
️ 代碼示例:
# 1.查找指定字符串
str1 = '你好,我是黃小黃同學!'
print(str1.find('黃小黃')) # 5
print(str1.find('黃')) # 5
print(str1.find('黃', 0, 5)) # -1
# 2.替換字符串
str2 = '我的博客名:Nezuko627'
str3 = str2.replace('Nezuko627', '小黃小黃不再迷茫')
print(str3) # 我的博客名:小黃小黃不再迷茫
str4 = 'dog dog dog'
print(str4.replace('dog', 'cat')) # cat cat cat
print(str4.replace('dog', 'cat', 2)) # cat cat dog
從上述代碼示例我們可以總結出:
find
方法,返回的是查找字符串出現第一次
的索引;0
到5
,實際上應該解釋成[0,5)
,即左閉右開區間
;replace
默認替換字符串的所有 old_str
,當指定 num
時,則最多替換 num
次,示例中給的是 2
。 該部分內容比較簡單,不作解釋,具體看代碼及運行結果即可。
️ 代碼示例:
# 1.查找指定字符串
str1 = '你好,我是黃小黃同學!'
print(str1.find('黃小黃')) # 5
print(str1.find('黃')) # 5
print(str1.find('黃', 0, 5)) # -1
# 2.替換字符串
str2 = '我的博客名:Nezuko627'
str3 = str2.replace('Nezuko627', '小黃小黃不再迷茫')
print(str3) # 我的博客名:小黃小黃不再迷茫
str4 = 'dog dog dog'
print(str4.replace('dog', 'cat')) # cat cat cat
print(str4.replace('dog', 'cat', 2)) # cat cat dog
運行結果:
我是黃小黃同學
我是黃小黃同學
我是黃小黃同學
前面我們已經介紹過,通過 split
方法可以把一個字符串拆分成一個列表,而通過 join
方法,可以把一個列表拼接成一個字符串。
️ 代碼示例:
mystr = '哈 利 波 特 的 魔 法 世 界'
mylist = mystr.split(' ')
print(mylist)
mystr_temp = ' '.join(mylist)
print(mystr_temp)
實現結果:
['哈', '利', '波', '特', '的', '魔', '法', '世', '界']
哈 利 波 特 的 魔 法 世 界
在示例中,將 mystr 字符串按照空格進行了切分,返回的列表使用了 mylist 接收。 而後,使用空格作為分隔符將 mylist 列表中的元素以字符串表示的形式拼接成了個字符串 mystr_temp。
需要注意的是,如果不指定 split 的參數,其默認以空白字符分隔,比如空格、\t等,示例如下代碼:
mystr = '哈 利 波 特 的 魔 法\n世\t界'
mylist = mystr.split()
print(mylist) # ['哈', '利', '波', '特', '的', '魔', '法', '世', '界']
簡介:
Python
提供了倒序索引,具體見下圖:語法如下:
字符串名/列表名/元組名[開始索引:結束索引:步長]
️ 注意點:
需要特別注意的是,如果倒序遍歷,記得修改步長為負數
str = '我是黃小黃同學'
1.截取從 2 ~ 5 位置的字符串,截取 2 ~ 末尾的字符串:
str = '我是黃小黃同學'
print(str[2:6]) # 黃小黃同
print(str[2:]) # 黃小黃同學
2.截取完整的字符串
str = '我是黃小黃同學'
print(str[:]) # 我是黃小黃同學
3.截取完整的字符串,每兩個取一個(隔一個取一個)
str = '我是黃小黃同學'
print(str[::2]) # 我黃黃學
4.截取字符串,不包含最後一個元素
str = '我是黃小黃同學'
print(str[:-1]) # 我是黃小黃同
5.截取末尾兩個字符
str = '我是黃小黃同學'
print(str[-2:]) # 同學
6.利用切片求字符串的逆序
將步長設置為-1即可,列舉兩種方式
str = '我是黃小黃同學'
print(str[::-1]) # 學同黃小黃是我
print(str[-1::-1]) # 學同黃小黃是我
以下為錯誤示范
str = '我是黃小黃同學'
print(str[0::-1]) # 我
假設有一段英文,其中有單詞中間的字母i被誤寫為I,請編寫程序進行糾正
️ 代碼示例:
思路見注釋!!!
# 先接收一段英文
message = input("Please enter: ")
# 先將接收的字符串進行判斷,所有的 I 改成 i
message = message.replace('I', 'i')
# 對英文句子的首字母大寫
message = message.capitalize()
# 輸出修改後的結果
print(message)
結果:
有一段英文文本,其中有單詞連續重復了兩次,編寫程序檢查重復單詞並只保留一個。例如,文本內容為“This is is a dask.”,程序輸出為“This is a desk.”。
️ 代碼示例:
思路見注釋!!!
# 先接收一個句子,以空格為分隔符轉成列表接收
message = input('Please enter a sentence: ').split(' ')
result = '' # 接收結果
# 先加入第一個單詞
result += message[0]
# 逐個判斷單詞是否重復,重復則不添加到結果result
for item in range(1, len(message)):
if message[item] == message[item-1]:
continue
else:
result += ' ' + message[item]
# 輸出結果
print(result)
結果:
以上便是本文的全部內容啦,後續內容將會持續免費更新,如果文章對你有所幫助,麻煩動動小手點個贊 + 關注,非常感謝 ️ ️ ️ !
如果有問題,歡迎私信或者評論區!
共勉:“你間歇性的努力和蒙混過日子,都是對之前努力的清零。”