其實我們在講python基礎部分的時候,已經涉及到字串的講解了,但是我們講的並不是很深入,作為python最常用的型別,字串肯定有屬於它自己的奧秘,下面我們對字串進行詳細的講解。
不知道大家在學習了字串,列表和元組之後,有沒有發現其實他們之間是存在很多共同點的,排去共同的bif不說,他們的性質其實也很相近,就拿字串和列表來說吧。
list1 = ['a', 'b', 'c', 'd']
string1 = "abcd"
(1)其實他們都是通過特定的符號,然後符號內放置一些元素組成的,所以我們現在可以回想一下,我們學過的列表都有哪些操作方法來著?那些方法放到字串裡是不是也能用呢?好了,話不多說,我們先來看幾個例子。
str1 = "my name is hopes li"
print(str1[:7])
print(str1[11:])
print(str1[:11] + 'not ' + str1[11:])
結果:
my name
hopes li
my name is not hopes li
所以看來,切片在字串中同樣能用。
(2)然後再看下乙個例子。
str2 = "abcabcdeaafffg"
print(str2.count("a"))
print(str2.count("abc"))
結果:
4
2
通過上面這個例子,我們可以看出來,count()方法用來統計制定字元出現次數也可以在字串中使用,但是一定要注意,count方法的括號內的字元一定要用引號括起來,不然就會報錯。
(3)那接下來讓我們通過dir方法來看一下字串究竟有哪些方法可以用呢。
print(dir(str))
結果:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__',
'__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold',
'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha',
'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join',
'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split',
'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
大家看到後是不是都蒙了,這也太多了吧,怎麼感覺比列表和元組加起來的方法都要多呢?沒錯,恰恰是因為字串作為最常用的型別,它肯定需要滿足各種各樣的需求,所以字串的bif才會如此的強大,通過下面的**,我們來看看這些方法都是用來做什麼的吧。
看到沒有,確實有太多的方法了,但我們不可能乙個乙個的詳細講,大家可以記住一些常用的,那些不常用的如果用到再回來查就好了,下面我列舉幾個算是比較常用的方法。
str1 = "hello world"
print(str1.capitalize())
str2 = "hello world"
print(str2.casefold())
結果:
hello world
hello world
另外我們再補充兩個關於索引的方法,乙個是index乙個是find,好了,我們看例子。
str1 = "my name is hopes li"
print(str1.find("name"))
print(str1.index("hopes"))
print(str1.find("hello"))
print(str1.index("hello"))
結果:
3
11-1
valueerror: substring not found
所以這兩個方法都可以對字串內的字元進行索引,得到的是這個字元的起始位置,但是有什麼不同呢,想必大家也看出來了,當我用find索引乙個不存在的字元時,它會返回乙個-1,但如果我用index索引乙個不存在的字元,它就會報錯,所以我們可以在不同的場合內使用這兩個索引。
我們再來看幾個其他的方法------join方法。
str1 = "hopes"
print("_".join(str1))
結果:
h_o_p_e_s
看到這個結果是不是感覺有點神奇,我們在每個字元的中間加入了乙個下劃線,但是我們也注意到了,這個join的用法有點不同,我們把需要插入的字元放到join的前面,然後將被插入的字串變數放到join的括號內,這種方法對於要大量拼接字串的工作提供了便利。
replace方法,將指定的字元進行替換。
str1 = "my name is hopes"
print(str1.replace("hopes", "alex"))
結果:
my name is alex
其中replace內的第乙個字元為被替換的物件,第二個字元為要替換的物件。
split方法,用於拆分字串
str1 = "my name is hopes"
print(str1.split())
結果:
['my', 'name', 'is', 'hopes']
所以我們可以看出,split的作用和join的作用完全相反,split是將字串按一定規律拆分,並且是拆分成乙個列**式,我們先了解這幾種內建方法,其他的bif在以後的學習中我們再進行介紹。 python入門(四) 字串
0.字串的表示 字串可以用單引號 和雙引號 表示。若想在字串中表示單 雙引號,則在單 雙引號外面用雙 單引號括起來。故內部單 雙引號成為字元。1.字串的索引 字串的索引可以正序排列也可以倒序排列。正序從第乙個字元開始索引為0,正向遞增 倒敘從最後乙個字元開始索引為 1,反向遞減。2.字串的切片 返回...
Python入門 01 字串 數字
用引號括起的都是字串,其中引號可以是單引or雙引 這種靈活的方式可以讓字串中包含引號 name ada lovelace print name.title 輸出 ada lovelacename abcd print name.upper 大寫 print name.lower 小寫使用 加號來合併...
Python入門 Chapter8 字串
字串是字元的序列,比如訪問第乙個字元 fruit banana print fruit 0 括號中的表示式稱為下標,下標指示了序列中對應的字元,並且從0開始。len是乙個內建函式,返回乙個字串的長度 fruit banana print len fruit 第一種方式 使用while index 0...