Python 中三引號可以將復雜的字符串進行賦值
Python 三引號允許一個字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符
三引號的語法是一對連續的單引號或者雙引號(通常都是成對的用)
hi = ’‘’hi
there‘’‘
print(hi)
三引號讓程序員從引號和特殊字符串的泥潭里面解脫出來,自始至終保持一小塊字符串的格式(即所見即所得)格式的。
一個典型的用例是,當你需要一塊HTML或者SQL時,這時當用三引號標記,使用傳統的轉義字符體系將十分費神
sql = ’‘’
CREATE TABLE u
login VARCHAR(
uid INTEGER,
prid INTEGER)
‘’‘
print(sql)
Unicode 字符串
Python 中定義一個 Unicode 字符串和定義一個普通字符串一樣簡單:
如下, 被替換的 u0020 標識表示在給定位置插入編碼值為 0x0020 的 Unicode 字符(空格符)
字符串使用方法詳解
字符串基本特點
字符串的編碼
字符串的創建(單行)
字符串的創建(多行)
空字符串和len()函數
轉移字符 n: 換行 r: 回車 t:橫向制表符 b:退格 \:輸出轉義符
字符串拼接 +
字符串復制 *
不換行打印
從控制臺讀取輸入的字符串 input()
字符串替換 replace()
數字轉字符串 str()
使用[]提取指定索引下的字符
split()分割字符串和join()合并字符串
字符串駐留機制和字符串比較
字符串比較和同一性
成員操作符判斷子字符串
字符串常用方法匯總
去除首尾信息
大小寫轉換
格式排版
字符串特征判斷方法
字符串的格式化
填充與對齊
數字格式化
可變字符串
上述介紹配套測試代碼
1.字符串基本特點
# Python的字符串是不可變的,但可以將字符串的一部分復制到新創建的字符串,達到“看起來修改”的效果。
2.字符串的編碼
# Python3直接支持Unicode,可以表示世界上任何書面語言的字符。Python3的字符默認就是16位Unicode編碼,ASCII碼是Unicode編碼的子集。
# 使用內置函數ord()可以把字符轉換成對應的Unicode碼;
print(ord(”A“))
print(ord(”a“))
print(ord(”明“))
# 使用內置函數chr()可以把十進制數字轉換成對應的字符。
print(chr(706))
3.引號創建字符串
# 我們可以通過單引號或雙引號創建字符串。 使用兩種引號的好處是可以創建本身就包含引號的字符串,而不用使用轉義字符。
a = ”I’m a teacher!“
print(a) # I‘m a teacher!
b = ’my_name is ”TOM“‘
print(b) # my_name is ”TOM“
4.連續三個單引號或三個雙引號,可以幫助我們創建多行字符串。在長字符串中會保留原始的格式。
c = ’‘’Fake
news
!
‘’‘
print(c)
5.空字符串和len()函數
# Python允許空字符串的存在,不包含任何字符且長度為0。
print(len(’a‘))
print(len(’‘))
# len()用于計算字符串含有多少字符。
print(len(”天子守國門,君王死社稷“))
6.轉義字符
# n: 換行 r: 回車 t:橫向制表符 b:退格 \:輸出轉義符
print(”啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊n惺惺惜惺惺嘻嘻嘻嘻嘻嘻嘻r惺惺惜惺惺t想新b寫寫嘻嘻嘻惺惺惜惺惺想新寫寫許許多多的若若若熱\二二“)
7.字符串拼接
# 可以使用 + 將多個字符串拼接起來
a = ’皮爾斯‘ + ’摩根‘
print(a)
# 可以將多個字面字符串直接放到一起實現拼接。
b = ’皮爾斯‘’摩根‘
print(b)
8.字符串復制
# 使用*可以實現字符串復制
c = ”MAGA!“ * 3
print(c)
9.不換行打印
# 我們可以通過參數end = “任意字符串”。實現末尾添加任何內容:
print(”唐納德“, end=’ ‘)
print(”特朗普“, end=’##‘)
print(”特離譜“)
10.從控制臺讀取字符串
# 我們可以使用input()從控制臺讀取鍵盤輸入的內容。
# myCash = input(”請輸入付款金額“”(若付款, 概不退換): “)
# print(”您的收款金額是: “ + myCash)
11.replace() 實現字符串替換
# 整個過程中,實際上我們是創建了新的字符串對象,并指向了變量a,而不是修改了以前的字符串。
a = ”Mr Trump say: Fake news!“
a = a.replace(”Trump“, ”Trace“)
print(a)
12.str()實現數字轉型字符串
a = str(5.20) # 結果是:a = ‘5.20’
b = str(3.14e2) # 結果是:b = ’314.0’
c = str(True) # 結果是:c = ‘True’
print(a)
print(b)
print(c)
”“”
13.使用[]提取字符
字符串的本質就是字符序列,我們可以通過在字符串后面添加[], 在[]里面指定偏移量,可以提取該位置的單個字符。
正向搜索:
最左側第一個字符,偏移量是0,第二個偏移量是1,以此類推。直到len(str)-1為止。
反向搜索:
最右側第一個字符,偏移量是-1,倒數第二個偏移量是-2,以此類推,直到-len(str)為止
“”“
a = ”Ivanka Trump“
# 字符串開頭
print(a[0])
print(a[-len(a)])
# 字符串結尾
print(a[-1])
print(a[len(a) - 1])
14.字符串切片slice操作
# 切片slice操作可以讓我們快速的提取子字符串。標準格式為 起始偏移量start:終止偏移量end:步長step
# 典型操作(三個量為正數的情況)如下
a = ”Donald Trump“
print(”[:] 提取整個字符串: “, a[:])
print(”[start:] 從start索引開始到結尾: “, a[2:])
print(”[:end] 從頭開始知道end-1: “, a[:2])
print(”[start:end] 從start到end-1: “, a[2:4])
print(”[start:end:step] 從start提取到end-1,步長是step: “, a[1:8:2])
# 其他操作(三個量為負數)的情況:
print(”倒數三個:“, a[-3:])
print(”倒數第八個到倒數第三個(包頭不包尾): “, a[-3:-1])
print(”步長為負,從右到左反向提取: “, a[::-1])
# 切片操作時,起始偏移量和終止偏移量不在[0,字符串長度-1]這個范圍,也不會報錯。起始偏移量小于0則會當做0,終止偏移量大于“長 度-1”會被當成-1。
print(a[7:100])
15. split()分割和join()合并
# split()可以基于指定分隔符將字符串分隔成多個子字符串(存儲到列表中)。如果不指定分隔符,則默認使用空白字符
a = ”Mr Trump say: Fake news!“
print(a.split())
print(a.split(”:“))
# join()的作用和split()作用剛好相反,用于將一系列子字符串連接起來。
b = [’Mr‘, ’Trump‘, ’say:‘, ’Fake‘, ’news!‘]
print(’-‘.join(b))
16. 字符串駐留機制和字符串比較
# 字符串駐留:常量字符串只保留一份
c = ”dd#“
d = ”dd#“
print(c is d) # True
17. 字符串比較和同一性
# 可以直接使用 == != 對字符串進行比較,是否含有相同的字符
# 使用 is not is ,判斷兩個對象是否同一個對象。比較的是對象的地址,即 id(obj1) 是否和 id(obj2) 相等。
a = ”Donald Trump“
b = ”Ivanka Trump“
print(a == b)
print(a is not b)
18. 成員操作符判斷子字符串
# in not in 關鍵字,判斷某個字符(子字符串)是否存在于字符串中。’
print(”ab“ in ”abcdefg“)
19. 字符串常用方法匯總
a = ‘’‘明太祖朱元璋,朱標,建文帝朱允炆
明成祖朱棣,明仁宗朱高熾,明宣宗朱瞻基,明英宗朱祁鎮,明代宗朱祁玉
明憲宗朱見深,明孝宗朱佑樘,明武宗朱厚照,明睿宗朱祐杬,
明世宗朱厚熜,明穆宗朱載垕,明神宗朱翊鈞,
明光宗朱常洛。明熹宗朱由校,明思宗朱由檢
’‘’
print(len(a))
print(a.startswith(”明太祖“))
print(a.endswith(”朱由檢“))
print(”第一次出現指定字符串的位置: “, a.find(”朱“))
print(”最后一次出現指定字符串的位置“, a.rfind(”朱“)) # 測試為false, 原因待定位
print(”指定字符串出現了幾次: “, a.count(”宗“))
print(”所有字符全是字母或數字: “, a.isalnum())
20. 去除首尾信息
# 我們可以通過strip()去除字符串首尾指定信息。通過lstrip()去除字符串左邊指定信息,rstrip()去除字符串右邊指定信息。
print(”-abc-“.strip(”-“))
print(”-abc-“.lstrip(”-“))
print(”-abc-“.rstrip(”-“))
21. 大小寫轉換
a = ”Mr Trump say: Fake news!“
print(”產生新的字符串,首字母大寫: “, a.capitalize())
print(”產生新的字符串,每個單詞都首字母大寫:“, a.title())
print(”產生新的字符串,所有字符全轉成大寫: “, a.upper())
print(”產生新的字符串,所有字符全轉成小寫: “, a.lower())
print(”產生新的,所有字母大小寫轉換: “, a.swapcase())
22. 格式排版
# center() 、 ljust() 、 rjust() 這三個函數用于對字符串實現排版。
a = ”asd“
print(a.center(100, ”*“))
print(a.center(100))
print(a.ljust(100, ”*“))
print(a.rjust(100, ”*“))
‘’‘
23. 特征判斷方法
isalnum() 是否為字母或數字
isalpha() 檢測字符串是否只由字母組成(含漢字)
isdigit() 檢測字符串是否只由數字組成
isspace()檢測是否為空白符
isupper() 是否為大寫字母
islower() 是否為小寫字母
’‘’
a = ”trump拆那“
print(a.isalnum())
print(a.isalpha())
print(a.isdigit())
print(a.isspace())
print(a.isupper())
print(a.islower())
print(a.isdecimal())
# 24. 字符串的格式化
# format() 基本用法基本語法是通過 {} 和 : 來代替以前的 % 。
# format() 函數可以接受不限個數的參數,位置可以不按順序。
a = ”今年是{0}年, 是農歷十二生肖中的{1}年“
print(a.format(2022, ”鼠“))
# 我們可以通過{索引}/{參數名},直接映射參數值,實現對字符串的格式化,非常方便。
b = ”爸爸的爸爸叫什么? 爸爸的爸爸叫{grandpa}“
print(b.format(grandpa=”爺爺“))
# 25. 填充與對齊
# 填充常跟對齊一起使用
# ^ 、 《 、 》 分別是居中、左對齊、右對齊,后面帶寬度
# : 號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充
print(”{:*》10}“.format(”testStr“)) # 在十個字符中將字符串居右對齊, 多出的用*補齊
print(”我是{0},{1:w^6}這里你把握不住“.format(”潘長江“, ”嘎子“))
# 26. 數字格式化
# 浮點數通過 f ,整數通過 d 進行需要的格式化。
a = ”您的支付寶到賬{:.2f}元, 需還款{:10d}元“
print(a.format(14138.552673, 6))
# 27. 可變字符串
# Python中,字符串屬于不可變對象,不支持原地修改,如果需要修改其中的值,只能創建新的字符串對象。
# 確實需要原地修改字符串,可以使用io.StringIO對象或array模塊
import io
s = ”hello, EVA“
sio = io.StringIO(s) # 可變字符串
print(sio)
v1 = sio.getvalue()
print(”v1:“, v1)
char7 = sio.seek(7) # 指針知道索引7這個位置
sio.write(”OnePiece“)
v2 = sio.getvalue()
print(”v2:“, v2)
# 類型轉換總結
# 轉換為int
print(‘int()默認情況下為:’, int())
print(‘str字符型轉換為int:’, int(‘010’))
print(‘float浮點型轉換為int:’, int(234.23))
# #十進制數10,對應的2進制,8進制,10進制,16進制分別是:1010,12,10,0xa
print(‘int(’0xa‘, 16) = ’, int(‘0xa’, 16))
print(‘int(’10‘, 10) = ’, int(‘10’, 10))
print(‘int(’12‘, 8) = ’, int(‘12’, 8))
print(‘int(’1010‘, 2) = ’, int(‘1010’, 2))
# 轉換為float
print(‘float()默認情況下為:’, float())
print(‘str字符型轉換為float:’,
float(‘123.01’))
print(‘int浮點型轉換為float:’, float(32))
# 轉換為complex
print(‘創建一個復數(實部+虛部):’, complex(12, 43))
print(‘創建一個復數(實部+虛部):’, complex(12))
# 轉換為str字符串
print(‘str()默認情況下為:’, str())
print(‘float型轉換為str:’, str(232.33))
print(‘int轉換為str:’, str(32))
lists = [‘a’, ‘b’, ‘e’, ‘c’, ‘d’, ‘a’]
print(‘列表list轉換為str:’, ‘’.join(lists))
# 轉換為list
strs = ‘hongten’
print(‘序列strs轉換為list:’, list(strs))
# 轉換為tuple(元組)
print(‘列表list轉換為tuple:’, tuple(lists))
# 字符和整數之間的轉換
print(‘整數轉換為字符chr:’, chr(67))
print(‘字符chr轉換為整數:’, ord(‘C’))
print(‘整數轉16進制數:’, hex(12))
print(‘整數轉8進制數:’, oct(12))
-
數據
+關注
關注
8文章
7085瀏覽量
89228 -
編程
+關注
關注
88文章
3628瀏覽量
93823 -
python
+關注
關注
56文章
4800瀏覽量
84826
發布評論請先 登錄
相關推薦
評論