導航:首頁 > 編程語言 > python字元串插值

python字元串插值

發布時間:2022-12-11 12:19:43

A. 怎麼用python在字元串中添加變數值

age=18

print('猜猜我的年齡,給你10次機會。')

foriinrange(10):

b=int(input(f'這是你第{i+1}次猜測:'))

ifb==18:

print(f'猜對了,你用了{i+1}次。')

break

elifb>18:

print('猜大了。')

else:

print('猜小了。')

B. Python 中的列表 List 是可以改變的, 元組 Tuple 是不可以改變的, 那什麼情況下要用到 tuple 呢

Tuple 是不可變 list。 一旦創建了一個 tuple 就不能以任何方式改變它。

Tuple 與 list 的相同之處

定義 tuple 與定義 list 的方式相同, 除了整個元素集是用小括弧包圍的而不是方括弧。
Tuple 的元素與 list 一樣按定義的次序進行排序。 Tuples 的索引與 list 一樣從 0 開始, 所以一個非空 tuple 的第一個元素總是 t[0]。
負數索引與 list 一樣從 tuple 的尾部開始計數。
與 list 一樣分片 (slice) 也可以使用。注意當分割一個 list 時, 會得到一個新的 list ;當分割一個 tuple 時, 會得到一個新的 tuple。

Tuple 不存在的方法

您不能向 tuple 增加元素。Tuple 沒有 append 或 extend 方法。
您不能從 tuple 刪除元素。Tuple 沒有 remove 或 pop 方法。
您不能在 tuple 中查找元素。Tuple 沒有 index 方法。
然而, 您可以使用 in 來查看一個元素是否存在於 tuple 中。

用 Tuple 的好處

Tuple 比 list 操作速度快。如果您定義了一個值的常量集,並且唯一要用它做的是不斷地遍歷它,請使用 tuple 代替 list。
如果對不需要修改的數據進行 「防寫」,可以使代碼更安全。使用 tuple 而不是 list 如同擁有一個隱含的 assert 語句,說明這一數據是常量。如果必須要改變這些值,則需要執行 tuple 到 list 的轉換。

Tuple 與 list 的轉換
Tuple 可以轉換成 list,反之亦然。內置的 tuple 函數接收一個 list,並返回一個有著相同元素的 tuple。而 list 函數接收一個 tuple 返回一個 list。從效果上看,tuple 凍結一個 list,而 list 解凍一個 tuple。

Tuple 的其他應用
一次賦多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v
解釋:v 是一個三元素的 tuple, 並且 (x, y, z) 是一個三變數的 tuple。將一個 tuple 賦值給另一個 tuple, 會按順序將 v 的每個值賦值給每個變數。

C. Python中字元串有哪些連接方法

1. 使用 '+' 連接
例如 s = s+ 'hello world!'
這種方式最慢
2. 使用 ' +='
例如 s += 'hello wold'
這種方式與第一種作用相同,但是效率高一點
3.使用 ".join(list)"
這種方式效率最高
使用時可以先用一個list緩存字元串,然後使用join方法,得到最終結果
4.python的字元串格式化操作符 %
例如 s = '%s New %s !'%('Happy','Year')
這種方式會讓代碼的可讀性更好,也不用對非字元串調用str方法

D. Python中字元串常用操作有哪些

字元串是 Python
中常用的數據類型,我們可以使用引號('或")來創建字元串,對字元串進行使用和操作,需要用到特定的函數,以下是常用的Python字元串操作方法:
1. capitalize()
作用:capitalize() 主要是用來實現字元串首字母大寫,其他字母小寫的功能。
實例:
1
2str1 = "oldboy"
print(str1.capitalize())
輸出結果:Oldboy
2. swapcase()
作用:swapcase() 主要是用來實現字元串大小寫反轉。
實例:
1
2str1 = " Oldboy"
print(str1.swapcase())
輸出結果:oLDBOY
3. title()
作用:title() 主要是用來實現字元串非字母隔開的部分,首字母大寫,其餘字母小寫。
實例:
1
2str1 = "Old boy e com"
print(str1.title())
輸出結果:Old Boy E Com
4. upper()
作用:upper() 主要是用來實現字元串所有字母全部大寫。
實例:
1
2str1 = "Oldboye"
print(str1.upper())
輸出結果:OLDBOYEDU
5. lower()
作用:lower() 主要是用來實現字元串所有字母全部小寫。
實例:
1
2str1 = "oLDBOYEDU"
print(str1.lower())
輸出結果:oldboye
6. center()
作用:center() 主要是用來實現字元串內容居中,填充物默認為空。
實例:
1
2
3str1 = "Oldboye"
print(str1.center(15))
print(str1.center(15,"*"))
輸出結果:
Oldboye
***Oldboye***
7. find()
作用:find() 主要作用是通過元素找索引,可以整體找,可以切片,找不到則返回-1。
實例:
1
2
3str1 = "Oldboye"
print(str1.find('b'))
print(str1.find('A'))
輸出結果:3 -1
8. index()
作用:index() 主要作用是通過元素找索引,可以整體找,可以切片,找不到會報錯。
實例:
1
2
3str1 = " Oldboye "
print(str1.index("b"))
print(str1.index("A"))
輸出結果:
0
Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found
9. startswith(obj)
作用:startswith(obj) 主要作用是檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = "Oldboye"
print(str1.startswith("O"))
輸出結果:True
10. endswith(obj)
作用:endswith(obj) 主要作用是檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = " Oldboye "
print(str1.endswith("e"))
輸出結果:True
11. strip()
作用:strip() 主要作用是去除字元串前後兩端的空格或其他字元、換行符、tab鍵等。
實例:
1
2
3
4str1 = "***Oldboy***"
print(str1.strip("*")) #去除兩邊的*
print(str1.lstrip("*")) #去除左邊的*
print(str1.rstrip("*")) #去除右邊的*
輸出結果:
Oldboy
Oldboy***
***Oldboy
12. replace(oldstr, newstr)
作用:replace(oldstr, newstr)主要作用是替換字元串。
實例:
1
2str1 = "Oldboye"
print(str1.replace("boy","man"))
輸出結果:Oldmane
13. isalpha()
作用:isalpha()主要作用是要判斷字元串是否只由字母組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = "Oldboye"
str2 = 「Old boy e」
print(str1.isalpha())
print(str2.isalpha())
輸出結果:True False
14. isdigit()
作用:isdigit()主要作用是判斷字元串是否只由數字組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = "Oldboye"
str2 = 「520」
print(str1.isdigit())
print(str2.isdigit())
輸出結果:False True
15. format()
作用:format()主要作用是格式化字元串。
方式一:按位置傳參
1
2str1 = '我叫{},今年{}歲'.format('oldboy',30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式二:按索引傳參
1
2str1 = '我叫{0},今年{1}歲'.format('oldboy',30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式三:按key傳參
1
2str1 = '我叫{name},今年{age}歲'.format(age=30,name='oldboy')
print(str1)
輸出結果:我叫oldboy,今年30歲
16. count()
作用:count()主要作用是統計元素在字元串出現的次數。
1
2str1 = "oldboye"
print(str1.count(『o』)) #統計字元o在字元串中出現的次數
數據結果:2

E. Python處理字元串必備方法

字元串是Python中基本的數據類型,幾乎在每個Python程序中都會使用到它。

▍1、Slicing

slicing切片,按照一定條件從列表或者元組中取出部分元素(比如特定范圍、索引、分割值)

▍2、****strip()

strip()方法用於移除字元串頭尾指定的字元(默認為空格或換行符)或字元序列。

在使用strip()方法時,默認去除空格或換行符,所以#號並沒有去除。

可以給strip()方法添加指定字元,如下所示。

此外當指定內容不在頭尾處時,並不會被去除。

第一個 前有個空格,所以只會去取尾部的換行符。

最後strip()方法的參數是剝離其值的所有組合,這個可以看下面這個案例。

最外層的首字元和尾字元參數值將從字元串中剝離。字元從前端移除,直到到達一個不包含在字元集中的字元串字元為止。

在尾部也會發生類似的動作。

▍3、****lstrip()

移除字元串左側指定的字元(默認為空格或換行符)或字元序列。

同樣的,可以移除左側所有包含在字元集中的字元串。

▍4、rstrip()

移除字元串右側指定的字元(默認為空格或換行符)或字元序列。

▍5、****removeprefix()

Python3.9中移除前綴的函數。

和strip()相比,並不會把字元集中的字元串進行逐個匹配。

▍6、removesuffix()

Python3.9中移除後綴的函數。

▍7、****replace()

把字元串中的內容替換成指定的內容。

▍8、****re.sub()

re是正則的表達式,sub是substitute表示替換。

re.sub則是相對復雜點的替換。

和replace()做對比,使用re.sub()進行替換操作,確實更高級點。

▍9、****split()

對字元串做分隔處理,最終的結果是一個列表。

當不指定分隔符時,默認按空格分隔。

此外,還可以指定字元串的分隔次數。

▍10、****rsplit()

從右側開始對字元串進行分隔。

▍11、****join()

string.join(seq)。以string作為分隔符,將seq中所有的元素(的字元串表示)合並為一個新的字元串。

▍12、****upper()

將字元串中的字母,全部轉換為大寫。

▍13、****lower()

將字元串中的字母,全部轉換為小寫。

▍14、capitalize()

將字元串中的首個字母轉換為大寫。

▍15、****islower()

判斷字元串中的所有字母是否都為小寫,是則返回True,否則返回False。

▍16、isupper()

判斷字元串中的所有字母是否都為大寫,是則返回True,否則返回False。

▍17、****isalpha()

如果字元串至少有一個字元並且所有字元都是字母,則返回 True,否則返回 False。

▍18、isnumeric()

如果字元串中只包含數字字元,則返回 True,否則返回 False。

▍19、isalnum()

如果字元串中至少有一個字元並且所有字元都是字母或數字,則返回True,否則返回 False。

▍20、count()

返回指定內容在字元串中出現的次數。

▍21、****find()

檢測指定內容是否包含在字元串中,如果是返回開始的索引值,否則返回-1。

此外,還可以指定開始的范圍。

▍22、rfind()

類似於find()函數,返回字元串最後一次出現的位置,如果沒有匹配項則返回 -1。

▍23、startswith()

檢查字元串是否是以指定內容開頭,是則返回 True,否則返回 False。

**
**

▍24、****endswith()

檢查字元串是否是以指定內容結束,是則返回 True,否則返回 False。

▍25、****partition()

string.partition(str),有點像find()和split()的結合體。

從str出現的第一個位置起,把字元串string分成一個3 元素的元組(string_pre_str,str,string_post_str),如果string中不包含str則 string_pre_str==string。

▍26、center()

返回一個原字元串居中,並使用空格填充至長度width的新字元串。

▍27、ljust()

返回一個原字元串左對齊,並使用空格填充至長度width的新字元串。

▍28、rjust()

返回一個原字元串右對齊,並使用空格填充至長度width的新字元串。

▍29、f-Strings

f-string是格式化字元串的新語法。

與其他格式化方式相比,它們不僅更易讀,更簡潔,不易出錯,而且速度更快!

▍30、swapcase()

翻轉字元串中的字母大小寫。

▍31、zfill()

string.zfill(width)。

返回長度為width的字元串,原字元串string右對齊,前面填充0。

參考文獻: https://mp.weixin.qq.com/s/9cuO-KL3g9ldqRGGZBVnjw

F. Python中冷門但非常好用的內置函數

Python中有許多內置函數,不像print、len那麼廣為人知,但它們的功能卻異常強大,用好了可以大大提高代碼效率,同時提升代碼的簡潔度,增強可閱讀性

Counter

collections在python官方文檔中的解釋是High-performance container datatypes,直接的中文翻譯解釋高性能容量數據類型。這個模塊實現了特定目標的容器,以提供Python標准內建容器 dict , list , set , 和 tuple 的替代選擇。在python3.10.1中它總共包含以下幾種數據類型:

容器名簡介

namedtuple() 創建命名元組子類的工廠函數

deque 類似列表(list)的容器,實現了在兩端快速添加(append)和彈出(pop)

ChainMap 類似字典(dict)的容器類,將多個映射集合到一個視圖裡面

Counter 字典的子類,提供了可哈希對象的計數功能

OrderedDict 字典的子類,保存了他們被添加的順序

defaultdict 字典的子類,提供了一個工廠函數,為字典查詢提供一個默認值

UserDict 封裝了字典對象,簡化了字典子類化

UserList 封裝了列表對象,簡化了列表子類化

UserString 封裝了字元串對象,簡化了字元串子類化

其中Counter中文意思是計數器,也就是我們常用於統計的一種數據類型,在使用Counter之後可以讓我們的代碼更加簡單易讀。Counter類繼承dict類,所以它能使用dict類裡面的方法

舉例

#統計詞頻

fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']

result = {}

for fruit in fruits:

if not result.get(fruit):

result[fruit] = 1

else:

result[fruit] += 1

print(result)

#{'apple': 2, 'peach': 3, 'lemon': 1}下面我們看用Counter怎麼實現:

from collections import Counter

fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']

c = Counter(fruits)

print(dict(c))

#{'apple': 2, 'peach': 3, 'lemon': 1}顯然代碼更加簡單了,也更容易閱讀和維護了。

elements()

返回一個迭代器,其中每個元素將重復出現計數值所指定次。元素會按首次出現的順序返回。如果一個元素的計數值小於1,elements()將會忽略它。

>>> c = Counter(a=4, b=2, c=0, d=-2)

>>> sorted(c.elements())

['a', 'a', 'a', 'a', 'b', 'b']most_common([n])

返回一個列表,其中包含n個最常見的元素及出現次數,按常見程度由高到低排序。如果n被省略或為None,most_common()將返回計數器中的所有元素。計數值相等的元素按首次出現的順序排序:

>>> Counter('abracadabra').most_common(3)

[('a', 5), ('b', 2), ('r', 2)]這兩個方法是Counter中最常用的方法,其他方法可以參考 python3.10.1官方文檔

實戰

Leetcode 1002.查找共用字元

給你一個字元串數組words,請你找出所有在words的每個字元串中都出現的共用字元(包括重復字元),並以數組形式返回。你可以按任意順序返回答案。

輸入:words = ["bella", "label", "roller"]

輸出:["e", "l", "l"]

輸入:words = ["cool", "lock", "cook"]

輸出:["c", "o"]看到統計字元,典型的可以用Counter完美解決。這道題是找出字元串列表裡面每個元素都包含的字元,首先可以用Counter計算出每個元素每個字元出現的次數,依次取交集最後得出所有元素共同存在的字元,然後利用elements輸出共用字元出現的次數

class Solution:

def commonChars(self, words: List[str]) -> List[str]:

from collections import Counter

ans = Counter(words[0])

for i in words[1:]:

ans &= Counter(i)

return list(ans.elements())提交一下,發現83個測試用例耗時48ms,速度還是不錯的

sorted

在處理數據過程中,我們經常會用到排序操作,比如將列表、字典、元組裡面的元素正/倒排序。這時候就需要用到sorted(),它可以對任何可迭代對象進行排序,並返回列表

對列表升序操作:

a = sorted([2, 4, 3, 7, 1, 9])

print(a)

# 輸出:[1, 2, 3, 4, 7, 9]對元組倒序操作:

sorted((4,1,9,6),reverse=True)

print(a)

# 輸出:[9, 6, 4, 1]使用參數:key,根據自定義規則,按字元串長度來排序:

fruits = ['apple', 'watermelon', 'pear', 'banana']

a = sorted(fruits, key = lambda x : len(x))

print(a)

# 輸出:['pear', 'apple', 'banana', 'watermelon']all

all() 函數用於判斷給定的可迭代參數iterable中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、None、False外都算True。注意:空元組、空列表返回值為True。

>>> all(['a', 'b', 'c', 'd']) # 列表list,元素都不為空或0

True

>>> all(['a', 'b', '', 'd']) # 列表list,存在一個為空的元素

False

>>> all([0, 1,2, 3]) # 列表list,存在一個為0的元素

False

>>> all(('a', 'b', 'c', 'd')) # 元組tuple,元素都不為空或0

True

>>> all(('a', 'b', '', 'd')) # 元組tuple,存在一個為空的元素

False

>>> all((0, 1, 2, 3)) # 元組tuple,存在一個為0的元素

False

>>> all([]) # 空列表

True

>>> all(()) # 空元組

Trueany函數正好和all函數相反:判斷一個tuple或者list是否全為空,0,False。如果全為空,0,False,則返回False;如果不全為空,則返回True。

F-strings

在python3.6.2版本中,PEP 498提出一種新型字元串格式化機制,被稱為 「字元串插值」 或者更常見的一種稱呼是F-strings,F-strings提供了一種明確且方便的方式將python表達式嵌入到字元串中來進行格式化:

s1='Hello'

s2='World'

print(f'{s1} {s2}!')

# Hello World!在F-strings中我們也可以執行函數:

def power(x):

return x*x

x=4

print(f'{x} * {x} = {power(x)}')

# 4 * 4 = 16而且F-strings的運行速度很快,比傳統的%-string和str.format()這兩種格式化方法都快得多,書寫起來也更加簡單。

本文主要講解了python幾種冷門但好用的函數,更多內容以後會陸陸續續更新~

閱讀全文

與python字元串插值相關的資料

熱點內容
匯編程序員待遇 瀏覽:357
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362