盤點Python基礎(chǔ)之字符串的那些事兒
為什么需要字符串?
當(dāng)打來瀏覽器登錄某些網(wǎng)站的時候,需要輸入密碼,瀏覽器把密碼傳送到服務(wù)器后,服務(wù)器會對密碼進(jìn)行驗證,其驗證過程是把之前保存的密碼與本次傳遞過去的密碼進(jìn)行對比,如果相等,那么就認(rèn)為密碼正確,否則就認(rèn)為不對;服務(wù)器既然想要存儲這些密碼可以用數(shù)據(jù)庫(比如MySQL)去實現(xiàn)。
當(dāng)然為了簡單起見,咱們可以先找個變量把密碼存儲起來即可;那么怎樣存儲帶有字母的密碼呢?這時就要用到字符串。
一、Python中字符串的格式
如下定義的變量a,存儲的是數(shù)字類型的值。
- a = 100
如下定義的變量b,存儲的是字符串類型的值。
- b = "hello itcast.cn"
- 或者
- b = 'hello itcast.cn'
小總結(jié):
雙引號或者單引號中的數(shù)據(jù),就是字符串
二、字符串輸出
例:
- name = 'ming'
- position = '講師'
- address = '中山市平區(qū)建材城西路金燕龍辦公樓1層'
- print('--------------------------------------------------')
- print("姓名:%s"%name)
- print("職位:%s"%position)
- print("公司地址:%s"%address)
- print('--------------------------------------------------')
結(jié)果:
- --------------------------------------------------
- 姓名:ming
- 職位:講師
- 公司地址:中山市昌平區(qū)建材城西路金燕龍辦公樓1層
- --------------------------------------------------
三、字符串輸入
input通過它能夠完成從鍵盤獲取數(shù)據(jù),然后保存到指定的變量中;
注意:input獲取的數(shù)據(jù),都以字符串的方式進(jìn)行保存,即使輸入的是數(shù)字,那么也是以字符串方式保存。
例:
- userName = input('請輸入用戶名:')
- print("用戶名為:%s"%userName)
- password = input('請輸入密碼:')
- print("密碼為:%s"%password)
結(jié)果:(根據(jù)輸入的不同結(jié)果也不同)
四、下標(biāo)和切片
1. 下標(biāo)索引
所謂“下標(biāo)”,就是編號,就好比超市中的存儲柜的編號,通過這個編號就能找到相應(yīng)的存儲空間。
生活中的 "下標(biāo)"
超市儲物柜
字符串中"下標(biāo)"的使用
列表與元組支持下標(biāo)索引好理解,字符串實際上就是字符的數(shù)組,所以也支持下標(biāo)索引。
如果有字符串:name = 'abcdef',在內(nèi)存中的實際存儲如下:
如果想取出部分字符,那么可以通過下標(biāo)的方法,(注意Python中下標(biāo)從 0 開始)
- name = 'abcdef'
- print(name[0])
- print(name[1])
- print(name[2])
運(yùn)行結(jié)果:
2. 切片的概念:
切片是指對操作的對象截取其中一部分的操作。字符串、列表、元組都支持切片操作。
3. 切片的語法:[起始:結(jié)束:步長]
注意:選取的區(qū)間屬于左閉右開型,即從"起始"位開始,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身)。
我們以字符串為例講解。
如果取出一部分,則可以在中括號[]中,使用 :
例:
- name = 'abcdef'
- print(name[0:3]) # 取 下標(biāo)0~2 的字符
運(yùn)行結(jié)果 :
例:
- name = 'abcdef'
- print(name[0:5]) # 取 下標(biāo)為0~4 的字符
運(yùn)行結(jié)果:
例:
- name = 'abcdef'
- print(name[3:5]) # 取 下標(biāo)為3、4 的字符
運(yùn)行結(jié)果:
例:
- name = 'abcdef'
- print(name[2:]) # 取 下標(biāo)為2開始到最后的字符
運(yùn)行結(jié)果:
例:
- name = 'abcdef'
- print(name[1:-1]) # 取 下標(biāo)為1開始 到 最后第2個 之間的字符
運(yùn)行結(jié)果:
- >>> a = "abcdef"
- >>> a[:3] #運(yùn)行結(jié)果
- 'abc'
- >>> a[::2] #運(yùn)行結(jié)果
- 'ace'
- >>> a[5:1:2]
- '' #運(yùn)行結(jié)果
- >>> a[1:5:2]
- 'bd' #運(yùn)行結(jié)果
- >>> a[::-2]
- 'fdb' #運(yùn)行結(jié)果
- >>> a[5:1:-2]
- 'fd' #運(yùn)行結(jié)果
五、字符串常見16種操作
以字符串'lstr = 'welcome to Beijing Museumitcpps fdsfs',為例。
介紹字符常見的操作。
<1> find
檢測 str 是否包含在 lstr中,如果是返回開始的索引值,否則返回-1。
語法:
- lstr.find(str, start=0, end=len(lstr))
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.find("Museum"))
- print(lstr.find("dada"))
運(yùn)行結(jié)果:
<2> index
跟find()方法一樣,只不過如果str不在 lstr中會報一個異常。
語法:
- lstr.index(str, start=0, end=len(lstr))
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.index("dada"))
運(yùn)行結(jié)果:
<3> count
返回 str在start和end之間 在 lstr里面出現(xiàn)的次數(shù)
語法:
- lstr.count(str, start=0, end=len(lstr))
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.count("s"))
運(yùn)行結(jié)果:
<4> replace
把 lstr 中的 str1 替換成 str2,如果 count 指定,則替換不超過 count 次.
- 1str.replace(str1, str2, 1str.count(str1))
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.replace("s", "ttennd"))
運(yùn)行結(jié)果:

<5> split
以 str 為分隔符切片 lstr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字符串
- 1str.split(str=" ", 2)
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.split("to", 5))
運(yùn)行結(jié)果:
<6> capitalize
把字符串的第一個字符大寫。
- 1str.capitalize()
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.capitalize())
運(yùn)行結(jié)果:
<7> title
把字符串的每個單詞首字母大寫。
- >>> a = "hello itcast"
- >>> a.title()
- 'Hello Itcast' #運(yùn)行結(jié)果
<8> startswith
檢查字符串是否是以 obj 開頭, 是則返回 True,否則返回 False
- 1str.startswith(obj)
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.startswith('we'))
運(yùn)行結(jié)果:
<9> endswith
檢查字符串是否以obj結(jié)束,如果是返回True,否則返回 False.
- 1str.endswith(obj)
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.endswith('hfs'))
運(yùn)行結(jié)果:
<10> lower
轉(zhuǎn)換 lstr 中所有大寫字符為小寫
- 1str.lower()
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.lower())
運(yùn)行結(jié)果:
<11> upper
轉(zhuǎn)換 lstr 中的小寫字母為大寫
- 1str.upper()
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.upper())
運(yùn)行結(jié)果:
<12> strip
刪除lstr字符串兩端的空白字符。
- >>> a = "\n\t itcast \t\n"
- >>> a.strip()
- 'itcast' #運(yùn)行結(jié)果
<13> rfind
類似于 find()函數(shù),不過是從右邊開始查找。
- 1str.rfind(str, start=0,end=len(1str) )
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.rfind('eijing'))
運(yùn)行結(jié)果:
<14> rindex
類似于 index(),不過是從右邊開始。
- 1str.rindex( str, start=0,end=len(1str))
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.rindex('eijing'))
運(yùn)行結(jié)果:
<15> partition
把lstr以str分割成三部分,str前,str和str后。
- 1str.partition(str)
例:
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- print(lstr.partition('eijing'))
運(yùn)行結(jié)果:
<16> join
mystr 中每個字符后面插入str,構(gòu)造出一個新的字符串。
- lstr = 'welcome to Beijing Museumitcpps fdsfs'
- str='233'
- lstr.join(str)
- li=["my","name","is","LY"]
- print(str.join(li))
運(yùn)行結(jié)果:
六、總結(jié)
本文詳細(xì)的講解了Python基礎(chǔ) ( 字符串 )。介紹了有關(guān)字符串,切片的操作。下標(biāo)索引。以及在實際操作中會遇到的問題,提供了解決方案。希望可以幫助你更好的學(xué)習(xí)Python。