目錄
字符串是一種用來(lái)表示文本的數(shù)據(jù)類型,它是由符號(hào)或者數(shù)值組成的一個(gè)連續(xù)序列。
1、了解定義字符串:
2、數(shù)據(jù)類型轉(zhuǎn)換:
3、轉(zhuǎn)義符號(hào):
4、字符串的索引
??注意
5、字符串的內(nèi)置方法
6.格式化輸出
字符串是一種用來(lái)表示文本的數(shù)據(jù)類型,它是由符號(hào)或者數(shù)值組成的一個(gè)連續(xù)序列。
1、了解定義字符串:
在 Python 中,字符串是一種常見(jiàn)的數(shù)據(jù)類型,用于表示文本信息。一個(gè)字符串可以包含多個(gè)字符,在 Python 中使用單引號(hào)、雙引號(hào)或三引號(hào)表示,例如:
s1 = 'Hello, World!' # 使用單引號(hào)表示字符串
s2 = "Python is great!" # 使用雙引號(hào)表示字符串
s3 = '''This is a
multi-line
string.''' # 使用三引號(hào)表示多行字符串
在 Python 中,字符串是不可變(immutable)的,即不能修改字符串中的某個(gè)字符。但可以使用下標(biāo)訪問(wèn)字符串中的單個(gè)字符,例如:
s = 'Python'
print(s[0]) # 輸出 P
print(s[-1]) # 輸出 n
可以使用加號(hào)(+)運(yùn)算符將兩個(gè)字符串合并成一個(gè)新的字符串,例如:
s1 = 'Hello'
s2 = 'World'
s3 = s1 + ', ' + s2 + '!'
print(s3) # 輸出 Hello, World!
2、數(shù)據(jù)類型轉(zhuǎn)換:
使用str()可以將任意數(shù)據(jù)類型轉(zhuǎn)換成字符串類型
在 Python 中,str 是一種基本數(shù)據(jù)類型,表示字符串。有時(shí)候需要將其他類型的數(shù)據(jù)轉(zhuǎn)換為字符串,或者將字符串轉(zhuǎn)換為其他類型的數(shù)據(jù)。Python 提供了一些內(nèi)置函數(shù),可以實(shí)現(xiàn)這種類型轉(zhuǎn)換。
1.str其他類型轉(zhuǎn)換為 str
要將其他類型的數(shù)據(jù)轉(zhuǎn)換為字符串,可以使用內(nèi)置函數(shù) str(),它可以接受任何類型的參數(shù),并返回對(duì)應(yīng)的字符串。
a = 123
b = 3.14
c = True
s1 = str(a)
s2 = str(b)
s3 = str(c)
print(s1, s2, s3) # 輸出 "123 3.14 True"
對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),str() 函數(shù)會(huì)自動(dòng)調(diào)用對(duì)象的 __str__() 方法,返回一個(gè)可讀性較好的字符串表示。
2.str轉(zhuǎn)換為 int 或 float
要將字符串轉(zhuǎn)換為整數(shù)或浮點(diǎn)數(shù),可以使用內(nèi)置函數(shù) int() 或 float()。
s1 = '123'
s2 = '3.14'
a = int(s1)
b = float(s2)
print(a, b) # 輸出 123 3.14
需要注意的是,如果字符串不能被解析為有效的數(shù)字,則會(huì)拋出 ValueError 異常。
3.其他類型轉(zhuǎn)換
除了上述常見(jiàn)類型外,還有一些其他類型的數(shù)據(jù)可以進(jìn)行轉(zhuǎn)換,例如 bool 類型、list 類型、tuple 類型等??梢酝ㄟ^(guò)直接或間接地調(diào)用相應(yīng)的構(gòu)造函數(shù)實(shí)現(xiàn)轉(zhuǎn)換。
a = 0
b = ''
c = []
d = {}
e = ()
f = None
s1 = bool(a)
s2 = str(a)
s3 = list(e)
s4 = tuple(c)
s5 = dict(d)
i1 = int(s2)
print(s1, s2, s3, s4, s5, i1) # 輸出 False "0" [] () {} 0
需要注意的是,一些類型之間的轉(zhuǎn)換可能存在損失精度或改變數(shù)據(jù)結(jié)構(gòu)的風(fēng)險(xiǎn),需要根據(jù)實(shí)際需求謹(jǐn)慎選擇。
3、轉(zhuǎn)義符號(hào):
轉(zhuǎn)義字符是指使用反斜杠“”對(duì)一些特殊字符進(jìn)行轉(zhuǎn)義,即改變?cè)凶址x的特殊字符,在引號(hào)里面使用。
如果不讓轉(zhuǎn)義符號(hào)生效要用 r 或 R 來(lái)定義原始字符串
original = r"我是原始字符串\n"
print("original : ", original) #我是原始字符串\n
4、字符串的索引
字符串是一個(gè)由元素組成的序列,每個(gè)元素所處的位置是固定的, 并且對(duì)應(yīng)著一個(gè)位置編號(hào),編號(hào)從0開(kāi)始,依次遞增1,這個(gè)位置編號(hào)被稱為索引或者下標(biāo)。
??注意
注意
1、Python 沒(méi)有單獨(dú)的字符類型,一個(gè)字符串的長(zhǎng)度就是為 1
2、單引號(hào)與雙引號(hào)可以嵌套使用,單引號(hào)表示的字符串中可以嵌套雙引號(hào)的字符串, 但是單引號(hào)不允許嵌套單引號(hào);
3、字符串可以用+運(yùn)算符拼接在一起,用*運(yùn)算符重復(fù)
4、Python中的字符串不能改變,可變的對(duì)象修改之后,前后地址不變,不可變對(duì)象修改地址之后,前后地址會(huì)變
正向索引:索引從 0 開(kāi)始從左往右依次遞增
反向索引:索引從- 1 開(kāi)始從右到左依次遞減
5、字符串的內(nèi)置方法
Python 字符串的內(nèi)置方法非常豐富,包括字符串查找、替換、分割、大小寫(xiě)轉(zhuǎn)換、判斷等等。
a. 字符串查找
str.find(sub[, start[, end]]):從左到右查找子字符串 sub 在 str 中的位置,返回第一個(gè)匹配項(xiàng)的索引位置。如果沒(méi)有找到,則返回 -1。start 和 end 參數(shù)表示查找的范圍,默認(rèn)為整個(gè)字符串。
# 查找子字符串,返回索引位置
s = 'hello, world'
print(s.find('o')) # 4
print(s.find('o', 5)) # 8,從第 5 個(gè)位置開(kāi)始查找
print(s.find('o', 5, 7)) # -1,查找范圍為 [5, 7)
str.rfind(sub[, start[, end]]):從右到左查找子字符串 sub 在 str 中的位置,返回最后一個(gè)匹配項(xiàng)的索引位置。如果沒(méi)有找到,則返回 -1。start 和 end 參數(shù)表示查找的范圍,默認(rèn)為整個(gè)字符串。
# 從右到左查找子字符串,返回索引位置
s = 'hello, world'
print(s.rfind('o')) # 8
print(s.rfind('o', 0, -2)) # 4,查找范圍為 [0, -2)
str.index(sub[, start[, end]]):與 find() 方法類似,從左到右查找子字符串 sub 在 str 中的位置,返回第一個(gè)匹配項(xiàng)的索引位置。如果沒(méi)有找到,則拋出 ValueError 異常。
# 查找子字符串,返回索引位置,沒(méi)有找到則拋出異常
s = 'hello, world'
print(s.index('o')) # 4
print(s.index('o', 5)) # 8,從第 5 個(gè)位置開(kāi)始查找
print(s.index('o', 5, 7)) # ValueError: substring not found
str.rindex(sub[, start[, end]]):與 rfind() 方法類似,從右到左查找子字符串 sub 在 str 中的位置,返回最后一個(gè)匹配項(xiàng)的索引位置。如果沒(méi)有找到,則拋出 ValueError 異常。
# 從右到左查找子字符串,返回索引位置,沒(méi)有找到則拋出異常
s = 'hello, world'
print(s.rindex('o')) # 8
print(s.rindex('o', 0, -2)) # 4,查找范圍為 [0, -2)
print(s.rindex('o', 5, 7)) # ValueError: substring not found
b. 字符串替換
str.replace(old, new[, count]):將 str 中的所有 old 子串替換為 new,返回新的字符串。如果指定了 count,則只替換前 count 個(gè)出現(xiàn)的子串。
# 替換子字符串
s = 'hello, world'
print(s.replace('o', 'O')) # hellO, wOrld
print(s.replace('o', 'O', 1)) # hellO, world,只替換第一個(gè)出現(xiàn)的子串
# 用新的字符替換字符串中舊的字符
str7 = 'my name is tony, my age is 18!' # 將tony的年齡由18歲改成73歲
str7 = str7.replace('18', '73') # 語(yǔ)法:replace('舊內(nèi)容', '新內(nèi)容') #my name is tony, my age is 73!
# 可以指定修改的個(gè)數(shù)
str7 = 'my name is tony, my age is 18!'
str7 = str7.replace('my', 'MY',1) # 只把一個(gè)my改為MY #'MY name is tony, my age is 18!'
str.maketrans(x[, y[, z]]):創(chuàng)建字符映射表,用于 translate() 方法的參數(shù)。x 是需要轉(zhuǎn)換的字符,y 是轉(zhuǎn)換后的字符,z 是需要?jiǎng)h除的字符。
# 創(chuàng)建字符映射表
trans_table = str.maketrans('abc', '123')
print(trans_table) # {97: 49, 98: 50, 99: 51}
str.translate(table):根據(jù)字符映射表 table 對(duì)字符串進(jìn)行轉(zhuǎn)換。
# 根據(jù)字符映射表轉(zhuǎn)換字符串
s = 'abc'
trans_table = str.maketrans('abc', '123')
print(s.translate(trans_table)) # 123
expandtabs() 方法可以將字符串中的制表符 `\t` 轉(zhuǎn)換為空格,并根據(jù)指定的 tabsize 將連續(xù)的多個(gè)空格替換為一個(gè)制表符或若干個(gè)空格。
str.expandtabs(tabsize = 8)
其中,tabsize 為可選參數(shù),默認(rèn)值為 8。
示例代碼:
str1 = 'a\tb\tc'
result = str1.expandtabs()
print(result) # 輸出 'a b c'
str2 = 'a b c'
result = str2.expandtabs(4)
print(result) # 輸出 'a b c'
c. 字符串分割和連接
str.split(sep=None, maxsplit=-1):以 sep 為分隔符對(duì) str 進(jìn)行分割,返回一個(gè)列表。maxsplit 指定最多分割次數(shù),默認(rèn)為 -1,表示不限制。
# 分割字符串
s = 'hello, world'##可以使用解壓賦值給切分出來(lái)賦一個(gè)變量,但是切多少塊就給多少變量名
print(s.split()) # ['hello,', 'world'],默認(rèn)以空格進(jìn)行分割
print(s.split(',')) # ['hello', ' world'],以逗號(hào)進(jìn)行分割
print(s.split(',', 1)) # ['hello', ' world'],最多分割一次
str.rsplit(sep=None, maxsplit=-1):與 split() 方法類似,但從右向左分割。
# 從右向左分割字符串
s = 'hello, world'
print(s.rsplit()) # ['hello,', 'world']
print(s.rsplit(',', 1)) # ['hello', ' world'] 可以指定切割次數(shù),只有用切割次數(shù)才能看出來(lái)
str.join(iterable):將可迭代對(duì)象 iterable 中的字符串連接起來(lái),返回一個(gè)新的字符串。
# 連接字符串
lst = ['hello', 'world']
print('|'.join(lst)) # hello|world
# 從可迭代對(duì)象中取出多個(gè)字符串,然后按照指定的分隔符進(jìn)行拼接,拼接的結(jié)果為字符串
'%'.join('hello') # 從字符串'hello'中取出多個(gè)字符串,然后按照%作為分隔符號(hào)進(jìn)行拼接
打印結(jié)果:'h%e%l%l%o'
'|'.join(['tony','18','read']) # 從列表中取出多個(gè)字符串,然后按照|作為分隔符號(hào)進(jìn)行拼接
打印結(jié)果:'tony|18|read'
d. 字符串大小寫(xiě)轉(zhuǎn)換
str.capitalize():將首字母變?yōu)榇髮?xiě),返回一個(gè)新的字符串。
# 首字母大寫(xiě)
s = 'hello, world'
print(s.capitalize()) # Hello, world
str.title():將每個(gè)單詞的首字母變?yōu)榇髮?xiě),返回一個(gè)新的字符串。
# 每個(gè)單詞首字母大寫(xiě)
s = 'hello, world'
print(s.title()) # Hello, World
str.lower():將所有字符變?yōu)樾?xiě),返回一個(gè)新的字符串。
# 所有字符變?yōu)樾?xiě)
s = 'Hello, World'
print(s.lower()) # hello, world
str.upper():將所有字符變?yōu)榇髮?xiě),返回一個(gè)新的字符串。
# 所有字符變?yōu)榇髮?xiě)
s = 'Hello, World'
print(s.upper()) # HELLO, WORLD
str.swapcase():將所有大寫(xiě)字母變?yōu)樾?xiě),所有小寫(xiě)字母變?yōu)榇髮?xiě),返回一個(gè)新的字符串。
# 大小寫(xiě)互換
s = 'Hello, World'
print(s.swapcase()) # hELLO, wORLD
e. 字符串判斷
str.startswith(prefix[, start[, end]]):判斷 str 是否以指定的前綴 prefix 開(kāi)始。start 和 end 參數(shù)表示查找范圍,默認(rèn)為整個(gè)字符串。
# 判斷字符串是否以指定前綴開(kāi)始
s = 'hello, world'
print(s.startswith('h')) # True
print(s.startswith('o', 4)) # True,從第 4 個(gè)位置開(kāi)始查找
print(s.startswith('w', 7)) # False,從第 7 個(gè)位置開(kāi)始查找
str.endswith(suffix[, start[, end]]):判斷 str 是否以指定的后綴 suffix 結(jié)束。start 和 end 參數(shù)表示查找范圍,默認(rèn)為整個(gè)字符串。
# 判斷字符串是否以指定后綴結(jié)束
s = 'hello, world'
print(s.endswith('d')) # True
print(s.endswith('l', 0, 3)) # True,查找范圍為 [0, 3)
print(s.endswith('w', 0, 7)) # False,查找范圍為 [0, 7)
str.isalpha():判斷 str 是否只包含字母。
# 判斷字符串是否只包含字母
s1 = 'hello'
s2 = 'hello!'
print(s1.isalpha()) # True
print(s2.isalpha()) # False,包含 '!'
str.isdigit():判斷 str 是否只包含數(shù)字,是否為純數(shù)字組成
# 判斷字符串是否只包含數(shù)字
s1 = '123'
s2 = '123a'
print(s1.isdigit()) # True
print(s2.isdigit()) # False,包含 'a'
str.isalnum():判斷 str 是否只包含字母和數(shù)字。
# 判斷字符串是否只包含字母和數(shù)字
s1 = 'hello123'
s2 = 'hello, world'
print(s1.isalnum()) # True
print(s2.isalnum()) # False,包含 ','
str.islower():判斷 str 是否全部為小寫(xiě)字母。
# 判斷字符串是否全部為小寫(xiě)字母
s1 = 'hello'
s2 = 'Hello'
print(s1.islower()) # True
print(s2.islower()) # False,首字母為大寫(xiě)
str.isupper():判斷 str 是否全部為大寫(xiě)字母。
# 判斷字符串是否全部為大寫(xiě)字母
s1 = 'HELLO'
s2 = 'Hello'
print(s1.isupper()) # True
print(s2.isupper()) # False,包含小寫(xiě)字母
str.isspace():判斷 str 是否只包含空白字符。
# 判斷字符串是否只包含空白字符
s1 = ' \t\n'
s2 = ' hello '
print(s1.isspace()) # True
print(s2.isspace()) # False,包含字母
isnumeric() 方法用于判斷字符串中的字符是否都屬于數(shù)字字符。其中,除了數(shù)字 0 ~ 9 之外,還包括羅馬數(shù)字、漢字?jǐn)?shù)字、全角數(shù)字等
str.isnumeric()
示例代碼:
str1 = '123456'
print(str1.isnumeric()) # 輸出 True
str2 = '①②③④⑤'
print(str2.isnumeric()) # 輸出 True
str3 = '四百五十六'
print(str3.isnumeric()) # 輸出 True
str4 = '12ab34'
print(str4.isnumeric()) # 輸出 False
isdecimal() 和 isnumeric() 非常相似,也是用來(lái)判斷字符串中的字符是否都屬于數(shù)字字符。不同之處在于,isdecimal() 方法只針對(duì)數(shù)字 0 ~ 9 進(jìn)行判斷,而不包括羅馬數(shù)字、漢字?jǐn)?shù)字、全角數(shù)字等
str.isdecimal()
示例代碼:
str1 = '123456'
print(str1.isdecimal()) # 輸出 True
str2 = '①②③④⑤'
print(str2.isdecimal()) # 輸出 False
str3 = '四百五十六'
print(str3.isdecimal()) # 輸出 False
str4 = '12ab34'
print(str4.isdecimal()) # 輸出 False
isidentifier() 方法用于判斷字符串是否是一個(gè)合法的標(biāo)識(shí)符。標(biāo)識(shí)符通常用來(lái)表示變量、函數(shù)、類等名稱,它的命名規(guī)則和 Python 中變量命名的規(guī)則相同。具體而言,標(biāo)識(shí)符只能由字母、下劃線、數(shù)字組成,且不能以數(shù)字開(kāi)頭。
str.isidentifier()
示例代碼:
str1 = 'hello'
print(str1.isidentifier()) # 輸出 True
str2 = 'hello world'
print(str2.isidentifier()) # 輸出 False
str3 = '_hello'
print(str3.isidentifier()) # 輸出 True
str4 = '123hello'
print(str4.isidentifier()) # 輸出 False
需要注意的是,Python 中有一些關(guān)鍵字是不能用作標(biāo)識(shí)符的,例如 `if`、`while`、`for` 等。同時(shí),Python 中的標(biāo)識(shí)符是區(qū)分大小寫(xiě)的。
f. 其他
count() 方法是用來(lái)返回指定元素在列表、字符串等對(duì)象中出現(xiàn)的次數(shù)。它的語(yǔ)法格式如下:
object.count(element)
"""其中,object 是需要檢查的對(duì)象,element 是需要計(jì)數(shù)的元素。"""
1.列表中元素的計(jì)數(shù)
list1 = ['apple', 'banana', 'cherry', 'banana']
count = list1.count('banana')
print(count) # 輸出 2
2.字符串中字符的計(jì)數(shù)
str1 = 'Hello, world!'
count = str1.count('o')
print(count) # 輸出 2
3.檢查子字符串的計(jì)數(shù)
str2 = 'To be or not to be, that is the question.'
count = str2.count('be')
print(count) # 輸出 2
需要注意的是,count() 方法只能統(tǒng)計(jì)可哈希的對(duì)象類型(可作為字典的鍵),因此不能用于統(tǒng)計(jì)集合、字典等不可哈希的對(duì)象類型。同時(shí),如果統(tǒng)計(jì)的元素不存在于對(duì)象中,count() 方法會(huì)返回 0。
strip() 移除字符串首尾指定的字符(默認(rèn)移除空格)
lstrip() 只移除左邊的指定字符
rstrip() 只移除右邊的指定字符
# 去除字符串首尾指定字符
s = ' hello, world '
print(s.strip()) # 'hello, world',去除首尾的空格
print(s.lstrip()) # 'hello, world ',只去除左側(cè)的空格
print(s.rstrip()) # ' hello, world',只去除右側(cè)的空格
# 去除字符串首尾指定字符,括號(hào)內(nèi)不指定字符,默認(rèn)以空格作為切分符號(hào),括號(hào)內(nèi)指定分隔字符,則按照括號(hào)內(nèi)指定的字符切割字符串(空格、\n、\t)
s = '***hello, world***'
print(s.strip('*')) # 'hello, world',去除首尾的'*'
print(s.lstrip('*')) # 'hello, world***',只去除左側(cè)的'*'
print(s.rstrip('*')) # '***hello, world',只去除右側(cè)的'*'
center() 方法是用來(lái)將字符串居中顯示,并用指定的字符填充空白部分。它的語(yǔ)法格式如下:
string.center(width[, fillchar])
"""其中,string 是需要居中的字符串,width 是設(shè)置的總寬度(包括原字符串),fillchar 是可選參數(shù),用來(lái)指定填充空白部分的字符。如果不指定,就用空格來(lái)填充。"""
1.居中顯示并用空格填充
str1 = 'Hello'
result = str1.center(10)
print(result) # 輸出 ' Hello '
2.居中顯示并用指定字符填充
str2 = 'World'
result = str2.center(10, '*')
print(result) # 輸出 '**World***'
"""
上面的示例中,第一個(gè)例子中的字符串 Hello 居中顯示,總寬度是 10,因此需要在前后填充 2 個(gè)空格。在第二個(gè)例子中,字符串 World 居中顯示,總寬度為 10,填充字符為 *,因此需要在前后各填充 2 個(gè) *。
需要注意的是,如果指定的總寬度小于原字符串的長(zhǎng)度,center() 方法并不會(huì)將字符串截?cái)?,而是直接返回原字符串。如果不指定填充字符,也不?huì)把空白部分填充為其他字符,而是默認(rèn)用空格填充。
"""
ljust()、rjust() 和 zfill() 方法都是用來(lái)對(duì)字符串進(jìn)行填充的方法,它們的主要區(qū)別在于填充的方向和填充內(nèi)容。
ljust():將字符串左對(duì)齊,并用指定字符填充右側(cè)空白部分。
rjust():將字符串右對(duì)齊,并用指定字符填充左側(cè)空白部分。
zfill():在字符串左側(cè)用 0 填充,使其達(dá)到指定長(zhǎng)度。
1.ljust()
string.ljust(width[, fillchar])
其中,string 是需要左對(duì)齊的字符串,width 是設(shè)置的總寬度(包括原字符串),fillchar 是可選參數(shù),用來(lái)指定填充空白部分的字符。如果不指定,就用空格來(lái)填充。例如:
# 左對(duì)齊并用空格填充
str1 = 'Hello'
result = str1.ljust(10)
print(result) # 輸出 'Hello '
# 左對(duì)齊并用指定字符填充
str2 = 'World'
result = str2.ljust(10, '*')
print(result) # 輸出 'World*****'
2.rjust()
string.rjust(width[, fillchar])
其中,string 是需要右對(duì)齊的字符串,width 是設(shè)置的總寬度(包括原字符串),fillchar 是可選參數(shù),用來(lái)指定填充空白部分的字符。如果不指定,就用空格來(lái)填充。例如:
str1 = 'Hello'
result = str1.rjust(10, '*')
print(result) # 輸出 '*****Hello'
3.zfill()
string.zfill(width)
其中,string 是需要左側(cè)填充 0 的字符串,width 是設(shè)置的總寬度(包括原字符串)。例如:
str1 = '123'
result = str1.zfill(5)
print(result) # 輸出 '00123'
需要注意的是,以上三種方法都是返回一個(gè)新的字符串,并不會(huì)改變?cè)凶址闹怠H绻付ǖ膶挾刃∮谠址L(zhǎng)度,則不進(jìn)行任何填充操作,直接返回原有字符串。
6.格式化輸出
- 什么是格式化輸出: 把一段字符串里面的某些內(nèi)容替換掉之后再輸出,就是格式化輸出。
- 為什么要格式化輸出: 我們經(jīng)常會(huì)輸出具有某種固定格式的內(nèi)容,比如:'親愛(ài)的xxx你好!你xxx月的話費(fèi)是xxx,余額是xxx‘,我們需要做的就是將xxx替換為具體的內(nèi)容。
- Python 格式化輸出的方式有三種:
-
- 使用 % 運(yùn)算符
- 使用 format() 方法
- 使用 f-string(Python 3.6+)
1. 使用 % 運(yùn)算符
在字符串中,可以使用 % 運(yùn)算符實(shí)現(xiàn)格式化輸出。
- %s 表示字符串占位符
- %d 表示整數(shù)占位符
- %f 表示浮點(diǎn)數(shù)占位符
- %X 表示十六進(jìn)制整數(shù)占位符
- %x 表示十六進(jìn)制整數(shù)占位符(小寫(xiě))
- %o 表示八進(jìn)制整數(shù)占位符
- %e 表示科學(xué)計(jì)數(shù)法占位符
1.字符串格式化輸出
name = 'Alice'
age = 18
print('My name is %s, and I am %d years old.' % (name, age))
2.浮點(diǎn)數(shù)格式化輸出
pi = 3.1415926
print('PI is %f.' % pi) # 默認(rèn)保留小數(shù)點(diǎn)后 6 位
print('PI is %.2f.' % pi) # 保留小數(shù)點(diǎn)后 2 位
3.十六進(jìn)制整數(shù)格式化輸出
num = 255
print('Number in hex is %X' % num) # 大寫(xiě)字母
print('Number in hex is %x' % num) # 小寫(xiě)字母
4.八進(jìn)制整數(shù)格式化輸出
num = 64
print('Number in octal is %o' % num)
5.科學(xué)計(jì)數(shù)法格式化輸出
num = 1.23456789e+09
print('Number in scientific notation is %e' % num) # 默認(rèn)保留小數(shù)點(diǎn)后 6 位
print('Number in scientific notation is %.5e' % num) # 保留小數(shù)點(diǎn)后 5 位
6.輸出結(jié)果:
Copy CodeMy name is Alice, and I am 18 years old.
PI is 3.141593.
PI is 3.14.
Number in hex is FF
Number in hex is ff
Number in octal is 100
Number in scientific notation is 1.234568e+09
Number in scientific notation is 1.23457e+09
ps:使用%s來(lái)做字符串的格式化輸出操作,傳值時(shí),必須嚴(yán)格按照位置與%s一一對(duì)應(yīng) 7.練習(xí)題: 練習(xí):用戶輸入姓名、年齡、工作、愛(ài)好 ,然后打印成以下格式 ------------ info of Tony ----------- Name : Tony Age : 22 Sex : male Job : Teacher ------------- end -----------------
Name = input('Name:')
Age = int(input('Age:'))
Sex = input('Sex:')
Job = input('Job:')
print('-' * 12, "info of %s" % Name, '-' * 11, '\n', 'Name:%s\n Age:%d\n Sex:%s\n Job:%s\n' % (Name, Age, Sex, Job),
'-' * 13, 'end', '-' * 17)
Name = input('Name:')
Age = int(input('Age:'))
Sex = input('Sex:')
Job = input('Job:')
print('-' * 12, "info of %s" % Name, '-' * 11, '\n', 'Name:{}\n Age:%d\n Sex:{}\n Job:{}\n'.format(Name, Age, Sex, Job),
'-' * 13, 'end', '-' * 17)
2. 使用 format() 方法
format() 方法使用一對(duì)花括號(hào) {} 來(lái)表示占位符。大括號(hào)內(nèi)可以包含數(shù)字、變量名或表達(dá)式等內(nèi)容,用于指定替換的位置或值。如果只有一個(gè)參數(shù),則不需要指定花括號(hào)中的數(shù)字。
1.字符串格式化輸出
name = 'Bob'
age = 20
print('My name is {}, and I am {} years old.'.format(name, age))
2.指定占位符的位置
name = 'Charlie'
age = 22
print('My name is {0}, and I am {1} years old.'.format(name, age)) # 指定位置
c = '面包'
f = "{name}說(shuō):這個(gè)周六我們一起去吃{ss}吧".format(name='小狗', ss=c)
print(f)
3.指定占位符的名稱
name = 'Dave'
age = 24
print('My name is {n}, and I am {a} years old.'.format(n=name, a=age)) # format括號(hào)內(nèi)在傳參數(shù)時(shí)完全可以打亂順序,但仍然能指名道姓地為指定的參數(shù)傳值,name=‘tony’就是傳給{name}
4.格式化數(shù)值
pi = 3.1415926
print('PI is {:.2f}.'.format(pi)) # 保留小數(shù)點(diǎn)后 2 位
5.格式化十六進(jìn)制整數(shù)
num = 255
print('Number in hex is {:X}'.format(num)) # 大寫(xiě)字母
print('Number in hex is {:x}'.format(num)) # 小寫(xiě)字母
6.格式化八進(jìn)制整數(shù)
num = 64
print('Number in octal is {:o}'.format(num))
7.格式化科學(xué)計(jì)數(shù)法
num = 1.23456789e+09
print('Number in scientific notation is {:e}'.format(num)) # 默認(rèn)保留小數(shù)點(diǎn)后 6 位
print('Number in scientific notation is {:.5e}'.format(num)) # 保留小數(shù)點(diǎn)后 5 位
8.輸出結(jié)果:
Copy CodeMy name is Bob, and I am 20 years old.
My name is Charlie, and I am 22 years old.
My name is Dave, and I am 24 years old.
PI is 3.14.
Number in hex is FF
Number in hex is ff
Number in octal is 100
Number in scientific notation is 1.234568e+09
Number in scientific notation is 1.23457e+09
3. 使用 f-string文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-773781.html
f-string 是 Python 3.6+ 新增的字符串格式化方法。使用 f-string 時(shí),可以在花括號(hào)內(nèi)直接寫(xiě)變量、表達(dá)式等內(nèi)容作為占位符,更加簡(jiǎn)便。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-773781.html
1.字符串格式化輸出
name = 'Eric'
age = 26
print(f'My name is {name}, and I am {age} years old.')
2.格式化數(shù)值
pi = 3.1415926
print(f'PI is {pi:.2f}.') # 保留小數(shù)點(diǎn)后 2 位
3.格式化十六進(jìn)制整數(shù)
num = 255
print(f'Number in hex is {num:X}') # 大寫(xiě)字母
print(f'Number in hex is {num:x}') # 小寫(xiě)字母
4.格式化八進(jìn)制整數(shù)
num = 64
print(f'Number in octal is {num:o}')
5.格式化科學(xué)計(jì)數(shù)法
num = 1.23456789e+09
print(f'Number in scientific notation is {num:e}') # 默認(rèn)保留小數(shù)點(diǎn)后 6 位
print(f'Number in scientific notation is {num:.5e}') # 保留小數(shù)點(diǎn)后 5 位
6.輸出結(jié)果:
Copy CodeMy name is Eric, and I am 26 years old.
PI is 3.14.
Number in hex is FF
Number in hex is ff
Number in octal is 100
Number in scientific notation is 1.234568e+09
Number in scientific notation is 1.23457e+09
到了這里,關(guān)于python 字符串str以及內(nèi)置方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!