python序列:字符串

1.字符串是一種直接量或者說是一種標量,字符串是不可變類型,簡單來說改變一個字符串的元素就等需要新建一個新的字符串。當然,通過拼湊各個部分得到一個新的字符串也還是可以的

注意:python的字符串並不是以\0作爲結束符的

>>> astring="Hello world"
>>> astring=astring[:6]+'python'
>>> astring
'Hello python'

2.Pyhton實際上有三類字符串,通常意義下的爲字符串str和unicode字符串實際上是抽象類basestring的子類,這個basestring是不能是不能實例化的,如果妄圖實例化,那麼

>>> basestring('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: The basestring type cannot be instantiated

3.如果你想要刪除字符串的一個元素,由於字符串是不可變的,所以你不能僅僅只是刪除字符串中的某個元素,不過可以通過拼湊的方法來間接到達要求

>>> astring='Hello world'
>>> astring=astring[:3]+astring[4:]
>>> astring
'Helo world'

當然我麼也可以通過賦一個空字符串或者使用del語句來清空或者刪除一個字符串
4.字符串做對比的時候是按照ASCII碼的值的大小來比較的
5.成員操作符(in ,not in)用來判斷一個字符或者一個子串是否會出現在另一個字符串中

>>> astring="Hello world"
>>> "h" in astring
False
>>> "H" in astring
True

6.for 循環的else語句是一個可選項,它只在for循環完整的結束,沒有遇到break時執行

這是沒有遇到break,執行了後面的else語句
>>> for i in astring:
...     print i,
... else:
...     print "\nBingo"
...
H e l o   w o r l d 
Bingo

7.字符串對象的方法

>>> s.upper()   
'HELLO PYTHON'
>>> s.lower()
'hello python'
>>> s.capitalize()   #首字母大寫
'Hello python'
>>> s.title()   #單詞首字母大寫
'Hello Python'

8.格式化操作符(%)
%d 轉換成有符號的十進制
%u 轉換成無符號的十進制
%o 轉換成無符號的八進制
%e 轉換成科學計數法
%f 轉換成浮點型
%c 轉換成字符

**格式化操作符輔助指令
* 定義寬度或者小數點精度
m.n m顯示的最小的總寬度,n是小數點後的位數 %m.nf

>>> f=2.4545
>>> print "%4.2f"%f
2.45

小技巧
對齊的文本和指定的寬度:

>>> '{:<30}'.format('left aligned')   # <向左對其,總寬度爲30
'left aligned                  '
>>> '{:>30}'.format('right aligned')  # >向右對其,總寬度爲30
'                 right aligned'
>>> '{:^30}'.format('centered')      # ^在總寬度爲30的範圍內居中,
'           centered           '
>>> '{:*^30}'.format('centered')#^在總寬度爲30的範圍內居中,空白區域用*填充
'***********centered***********'

使用逗號作爲千位分隔符

>>> '{:,}'.format(1234567890)
'1,234,567,890'

9.原始字符串的目的是爲了對付哪些在字符串中出現的特殊字符,除了原始字符串符號(引號前面的字母r)以外,原始字符串根普通的字符串有着幾乎完全相同的語法

>>> a=r"/asd/asd\n"
>>> print a
/asd/asd\n
>>> b="/asd/asd\n"
>>> print b
/asd/asd

>>>

10.chr(ascii碼)與ord(string)函數

>>> ord('A')
65
>>> chr(65)
'A'
>>>

有chr(ascii碼)與ord(string)函數,當然也有unichr(ascii碼)與uniord(string)函數,用法都一樣

11.常用的字符串類型的內建方法
string.endswith(obj,beg=0,end=len(string)) :字符串是否以obj結尾
類似的還有string.startswith(obj,beg=0,end=len(string))

>>> s="hello world"
>>> s.endswith('world')
True
>>> s.isalpha()  #全是字母返回True
False
>>> s="he11o world"
>>> s.isalpha()
False
>>> s="helloworld"
>>> s.isalpha()
True
>>>

>>> s="he11oworld"
>>> s.isalnum()   #字符串內至少有一個數字或字母返回True
True

>>> s="1231231"
>>>> s.isdigit()   #只包含數字返回True 與s.isnumeric()
True

>>> s="Title"
>>> s.istitle()   #是否標題化
True
>>> s=" title"
>>> s.lstrip()  #截掉s的左邊空格 當然還有s.rstrip()右邊空格
'title' 

>>> seq=['h','e','l']
>>> ''.join(seq)  #將seq中所有元素合併爲一個新的字符串
'hel'
>>>'-'.join(seq)
'h-e-l'

>>> s="hello world"
>>> s.count('l')  #返回l出現的次數
3

>>> s="Hello Python"
>>> s.swapcase()   #大小寫反轉
'hELLO pYTHON'
>>>

>>> s="Hello Python !!!"
>>> s.split(' ')   #以空格作爲分隔符切片成數組,很常用
['Hello', 'Python','!!!']
>>>

11.s雖然我們可以用單引號或者雙引號來定義字符串,但是如果包含如換行符這樣的特殊字符是,這個時候就應該使用三引號,經常用於HTML語句中

12.Unicode通過使用一個或者多個字節來表示一個字符的方法突破了ASCII的限制再這樣的機制下,Unicode可以表示超過90000個字符

unicode()函數可以把任何python的數據類型轉換成相應的Unicode字符串
s.encode(‘utf-8’)函數 參數接受編碼格式,返回編碼後的字符
s.decode(‘utf-8’)函數,參數接受解碼格式,然後輸出

遵循以下規則,處理unicode就比較簡單
①。程序中出現字符串一定要加一個前綴u
②。不要用str()函數,用unicode()函數代替
③。不到必須的不要在你的程序中編解碼unicode字符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章