給妹子講python S01E05字串的基本用法

2021-08-21 22:36:21 字數 1734 閱讀 8846

python中一項很重要的工作就是文字處理,與之緊密相關的資料型別是字串,從這一集開始,我們由淺入深介紹一系列關於字串的內容。

【妹子說】之前剛剛介紹了容器,字串應該可以看做是字元的容器吧?

可以這麼理解,字串就是由單個字元組成的有序序列,且不可修改。

模擬前面提到的列表,如正向索引、反向索引、分片索引等基於偏移量的基本操作,字串都是支援的。

下面列舉一些與列表類似的操作,需要強調一點的是字串的分片操作,分片就是從一整個字串中分離提取出一部分內容(即子字串),從而獲取所需的部分資料,並且python返回的是包含所獲取元素的新物件。

分片操作在實際使用時用處很多,比如:我們可以在命令列字串中去分離感興趣的引數列表。

s = 'abcdefg'

print(s[0])

print(s[-2])

print(s[1:4])

print(s[1:4:2])

print(s[-1:1:-1])

print(len(s))af

bcdbd

gfedc

7

再來看看字串的不可修改特性。

s = 'abcd'

s[0] = '4'

traceback (most recent call last):

file "e:/12homework/12homework.py", line 2, in s[0] = '4'

typeerror: 'str' object does not support item assignment

再說說兩個字串之間的連線操作。即所謂的字串相加,返回連線後生成的新字串

s1 = 'abcd'

s2 = '1234'

s = s1 + s2

print(s)

abcd1234

【妹子說】那字串的賦值,也是用=直接賦值吧

對,不過針對賦值,有深拷貝和淺拷貝兩種意義截然不同的方式。

下面這種賦值方法實際上是物件的深拷貝,即賦值左右的兩個物件具有相同值,但是是位於不同記憶體片區的物件

s = ['abcdefg']

a = s[:]

print(a)

print(s is a)

['abcdefg']

false

而如果是像下面這樣直接賦值,則左右兩個物件實際上被分配的是同乙個記憶體空間,即所謂的淺拷貝

s1 = 'abcdefg'

s2 = s1

print(s1 == s2)

true

【妹子說】明白了,那字串作為一種序列,也能進行遍歷和成員關係測試吧。

當然,可以使用for語句在乙個字串中進行迴圈迭代,並使用in操作符對字元和子字串進行成員關係的測試

s = 'hacker'

for c in s:

print(c, end=' ')

h a c k e r

print('k' in 'school')

false

以上都是字串與容器相類似的一些操作,有之前幾集學習的基礎,接受起來還是挺容易的。

【妹子說】把字串和容器序列進行模擬,很多用法就不言自明了。這些共性的方法倒是好理解,也比較簡單,那後面再介紹一些字串的獨門秘訣吧。

>>>>閱讀全文

給妹子講python S01E23初識異常處理

1.異常的預設處理和主動捕獲 2.主動觸發異常和自定義異常 3.finally終止 塊的用法 妹子問 從字面上來看,異常是程式執行時出現的錯誤吧。沒錯,每當在執行時檢測到程式錯誤時,python就會引發異常。對待異常有兩種方法 一是可以在程式中捕捉和響應錯誤 或者忽略已發生的異常。如果是忽略已發生的...

給妹子講python S01E23初識異常處理

1.異常的預設處理和主動捕獲 2.主動觸發異常和自定義異常 3.finally終止 塊的用法 妹子問 從字面上來看,異常是程式執行時出現的錯誤吧。沒錯,每當在執行時檢測到程式錯誤時,python就會引發異常。對待異常有兩種方法 一是可以在程式中捕捉和響應錯誤 或者忽略已發生的異常。如果是忽略已發生的...

給妹子講python S01E02學會用字典

妹子說 上次講了列表,今天接著講講字典吧。首先我要說,字典這個容器型別真的非常好用,也非常重要。字典和列表完全不同,字典裡的物件是無序的,他是通過一對對的鍵和值來反映一種對映關係。字典裡,每個鍵都是唯一的,我們可以通過鍵來訪問對應的值,而不能像列表那樣通過位置來索引。首先來看看怎樣用最簡單的方法生成...