02.從零開始學Python~字符串
本文是上一篇文章的後續,詳情點擊該鏈接
Python 的字符串是不可改變的,我們無法對原字符串做出任何修改。但是可以將原字符串的內容複製到新字符串裏,達到看起來修改了的效果
Python3支持Unicode,可以表示這個世界上任何書面語言的字符。Python3默認就是16位Unicode編碼,ASCll碼是Unicode的子集。
#使用內置函數 ord()可以把字符轉換成對應的 Unicode 碼
print(ord('G'))
#使用內置函數 chr()可以把十進制數字轉換成對應的字符。
print(chr(67))
字符串的一些常用方法
#創建兩個字符串
st = "Python is Great programing language in the World"
strs = " hello world Python";
#字符串的長度
print('字符串 st 的長度是: ' , len(st))
#字符串的拼接
print("st 和 strs 兩個字符串的拼接" , st + strs)
#字符串的複製
a = st*2
print("字符串的複製: " , a)
#不換行打印
print("不換行打印兩個print內容: alvin" , end="")
print("is great")
#從控制檯輸入字符串
My = input("請輸入姓名: ")
print("我的姓名是: " + My)
#數字轉字符串
print("數字666轉字符串: " , str(666))
#使用[]提取字符
print("st字符串 3 : 9: " , st[3:9])
#replace()實現字符串替換
print('修改st字符串,將Python改成Java: ', st.replace('Python','Java'))
#字符串切片slice 操作
#切片 slice 操作可以讓我們快速截取子字符串。標準格式爲: [起始偏移量 start:終止偏移量 end:步長 step]
print("截取整個字符串: ",st[:])
print("從 start 索引開始到結尾: ",st[7:])
print("[:end]從頭開始直到 end-1 ",st[:9])
print("[start:end]從 start 到 end-1 ",st[9:15])
print("[start:end:step]僅 start 提取到 end-1,步長是 step ",st[1:2:5])
split()分割和join()合併
split()可以基於指定分隔符將字符串分隔成多個字符串(存儲到列表中),如果不指定分隔符,則默認使用空白字符(換行符/空格/製表符)。
st = 'Python is greate'
print(st.split())
print(st.split('t'))
join()的作用和 split()作用剛好相反,用於將一系列子字符串連接起來。
st = 'Python is greate'
print("#".join(st))
+字符串連接對比join
import time
time01 = time.time() # 起始時刻
a = ""
for i in range(1000000):
a += "alvin"
time02 = time.time() # 織止時刻
print("+連接運算時間:" + str(time02 - time01))
time03 = time.time() # 起始時刻
li = []
for i in range(1000000):
li.append("alvin")
a = "".join(li)
time04 = time.time() # 織止時刻
print("join 連接運算時間 運算時間:" + str(time04 - time03))
使用字符串拼接符+,會生成新的字符串對象,因此不推薦使用+來拼接字符串。
使用 join 函數,因爲 join 函數在拼接字符串之前會計算所有字符串的長度,然後逐一拷貝, 僅新建一次對象。
常見查找方法
st = "我愛Java,愛Python,愛編程"
#以指定字符串開頭
print(st.startswith('我愛'))
#以指定字符串結尾
print(st.endswith('編程'))
#第一次出現指定字符串的位置
print(st.find('愛'))
#最後一次出現指定字符串的位置
print(st.rfind('愛'))
#指定字符串出現了幾次
print(st.count('愛'));
#所有字符全是字母戒數字
print(st.isalnum());
大小寫轉換
st = "todAy is GrEat daY"
#產生新的字符串,首字母大寫
print(st.capitalize())
#產生新的字符串,每個單詞都首字母大寫
print(st.title())
#產生新的字符串,所有字符全轉成大寫
print(st.upper())
#產生新的字符串,所有字符全轉成小寫
print(st.lower())
# 產生新的字符串,所有字母大小寫轉換
print(st.swapcase())
其他方法
isalnum() : 是否爲字母或數字
isalpha(): 檢測字符串是否叧由字母組成(含漢字)。
isdigit() 檢測字符串是否叧由數字組成。
isspace() 檢測是否爲空白符
isupper() 是否爲大寫字母
islower() 是否爲小寫字母