字元串複制
字元串複制的方法:
>>> a = "I like python and can teach you to learn it."
>>> print a
I like python and can teach you to learn it.
>>> b = a
>>> print b
I like python and can teach you to learn it.
>>> print a
I like python and can teach you to learn it.
複制非常簡單,類似與指派一樣。可以了解為那個字元串本來跟a連接配接着,通過b=a,a從自己手裡分處一股繩子給了b,這樣兩者都可以指向那個字元串了。
字元串長度
方法:
>>> a="hello"
>>> len(a)
5
使用的是一個函數len(object)。得到的結果就是該字元串長度。
>>> m = len(a) #把結果傳回後指派給一個變量
>>> m
5
>>> type(m) #這個傳回值(變量)是一個整數型
<type 'int'>
字元大小寫的轉換
在python中有下面一堆内建函數,用來實作各種類型的大小寫轉化
- S.upper() #S中的字母大寫
- S.lower() #S中的字母小寫
- S.capitalize() #首字母大寫
- S.istitle() #檢測字元串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫。
- S.isupper() #S中的字母是否全是大寫
-
S.islower() #S中的字母是否全是小寫
看例子:
>>> a = "hiekay,python"
>>> a.upper() #将小寫字母完全變成大寫字母
'HIEKAY,PYTHON'
>>> a #原資料對象并沒有改變
'hiekay,python'
>>> b = a.upper()
>>> b
'HIEKAY,PYTHON'
>>> c = b.lower() #将所有的小寫字母變成大寫字母
>>> c
'hiekay,python'
>>> a
'hiekay,python'
>>> a.capitalize() #把字元串的第一個字母變成大寫
'Hiekay,python'
>>> a #原資料對象沒有改變
'hiekay,python'
>>> b = a.capitalize() #建立立了一個
>>> b
'Hiekay,python'
>>> a = "hiekay,github" #這裡的問題就是網友白羽毛指出的,非常感謝他。
>>> a.istitle()
False
>>> a = "HIEAKY" #當全是大寫的時候,傳回False
>>> a.istitle()
False
>>> a = "hiekaY"
>>> a.istitle()
False
>>> a = "Hiekay,github" #如果這樣,也傳回False
>>> a.istitle()
False
>>> a = "Hiekay" #這樣是True
>>> a.istitle()
True
>>> a = 'Hiekay,Github' #這樣也是True
>>> a.istitle()
True
>>> a = "Hiekay"
>>> a.isupper()
False
>>> a.upper().isupper()
True
>>> a.islower()
False
>>> a.lower().islower()
True
>>> a = "This is a Book"
>>> a.istitle()
False
>>> b = a.title() #這樣就把所有單詞的第一個字母轉化為大寫
>>> b
'This Is A Book'
>>> a.istitle() #判斷每個單詞的第一個字母是否為大寫
False
>>> b.istitle()
True
操作字元串中的字元
在python中按照這樣的順序對字元串進行編号:從左邊第一個開始是0号,向下依次按照整數增加,為1、2...,直到最後一個,在這個過程中,所有字元,包括空格,都進行變好。例如:
Hello,wor ld
對于這個字元串,從左向右的變好依次是:
|0|1|2|3|4|5|6|7|8|9|10|11|
|H|e|l|l|o|,|w|o|r| |l |d |
看代碼:
>>> a = "Hello,wor ld"
>>> len(a) #字元串的長度是12,說明公有12個字元,最後一個字元編号是11
12
>>> a[0]
'H'
>>> a[3]
'l'
>>> a[9]
' '
>>> a[11]
'd'
>>> a[5]
','
特别說明,編号是從左邊開始,第一個是0。
能不能從右邊開始編号呢?可以。這麼人見人愛的python難道這點小要求都不滿足嗎?
>>> a[-1]
'd'
>>> a[11]
'd'
>>> a[-12]
'H'
>>> a[-3]
' '
看到了嗎?如果從右邊開始,第一個編号是-1,這樣就跟從左邊區分開了。也就是a[-1]和a[11]是指向同一個字元。
字元串截取
比如,從“hello,wor ld”裡面取出“llo”。可以這樣操作
>>> a[2:5]
'llo'
-
注意: 截取a[n,m],其中n<m,得到的字元是從a[n]開始到a[m-1]
注意:所截取部分的第一個字元(l)對應的編号是(2),從這裡開始;結束的字元是(o),對應編号是(4),但是結束的編号要增加1,不能是4,而是5.這樣截取到的就是上面所要求的了。
特殊的
>>> a[:] #表示截取全部
'Hello,wor ld'
>>> a[3:] #表示從a[3]開始,一直到字元串的最後
'lo,wor ld'
>>> a[:4] #表示從字元串開頭一直到a[4]前結束
'Hell'
去掉字元串兩頭的空格
- S.strip() 去掉字元串的左右空格
- S.lstrip() 去掉字元串的左邊空格
-
S.rstrip() 去掉字元串的右邊空格
例子:
>>> b=" hello "
>>> b
' hello '
>>> b.strip()
'hello'
>>> b
' hello '
>>> b.lstrip()
'hello '
>>> b.rstrip()
' hello'
擴充raw_input()
下面共同做一個練習:輸入使用者名,計算機自動向這個使用者打招呼。代碼如下:
#coding:utf-8
print "please write your name:"
name=raw_input()
print "Hello,%s"%name
raw_input()的含義,就是要使用者輸入内容,所輸入的内容是一個字元串。