python 高階學習之10

2021-06-22 20:49:04 字數 2721 閱讀 5739

>>> '%s %s' % ('spa','oil')

'spa oil'

>>> s=' ' .join(('ss','ww','21'))

>>> s

'ss ww 21'

>>> foo='hello'"world"

>>> foo

'helloworld'

通過這種方法,你可以把長的字串分成幾部分來寫,而不用加反斜槓

如果把乙個普通字串和乙個unicode 字串做連線處理,python 會在連線操作前先把普通字串轉化為unicode 字串

>>> 'he'+u' '+'won'+u'!'

u'he won!'

格式化操作符( % )

除錯工具 repr(),str()或``

template 物件有兩個方法,substitute()和safe_substitute().前者更為嚴謹,在key 缺少的情況下它會報乙個keyerror 的異常出來,而後者在缺少key 時,直接原封不動的把字串顯示出來.

>>> from string import template

>>> s=template('are $$symbols')

>>> print s.substitute(lang='python',many=3)

are 3pythonsymbols

>>> print s.substitute(lang='python')       

traceback (most recent call last):

file "", line 1, in ?

file "/usr/lib64/python2.4/string.py", line 172, in substitute

return self.pattern.sub(convert, self.template)

file "/usr/lib64/python2.4/string.py", line 162, in convert

keyerror: 'many'

>>> print s.safe_substitute(lang='python')

are $pythonsymbols

在原始字串裡,所有的字元都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。

這個'r'可以是小寫也可以是大寫,唯一的要求是必須緊靠在第乙個引號前.

>>> '\n'

'\n'

>>> print '\n'

>>> r'\n'

'\\n'

>>> print r'\n' \n

>>> u'abc'

u'abc'

cmp()

序列型別函式

len()

max() and min()

enumerate()

>>> s='fool'

>>> for i,t in enumerate(s):

...   print i,t

... 

0 f1 o

2 o3 l

zip()

>>> s,t = 'foa','wer'

>>> zip(s,t)

[('f', 'w'), ('o', 'e'), ('a', 'r')]

字串型別函式

raw_input()

str() and unicode()

chr(), unichr(), and ord()

字串不變性

是用來在多種雙位元組字元的格式、編碼進行轉換的,其中包括一些對這類字串的操作管理功能中最著名的是utf-8 編碼,它也用乙個位元組來編碼ascii 字元,這讓那些必須同時處理ascii碼和unicode 碼文字的程式設計師的工作變得非常輕鬆,因為ascii 字元的utf-8 編碼跟ascii 編碼完全相同。

unicode 支援多種編碼格式,這為程式設計師帶來了額外的負擔,每當你向乙個檔案寫入字串的時候,你必須定義乙個編碼(encoding 引數)用於把對應的unicode 內容轉換成你定義的格式,python 通過unicode 字串的encode()函式解決了這個問題,該函式接受字串中的字元為引數,輸出你指定的編碼格式的內容。

#!/usr/bin/python

codec='utf-8'

file='unicode.txt'

hello_out=u"hello world\n"

bytes_out=hello_out.encode(codec)

f=open(file,"w")

f.write(bytes_out)

f.close()

f=open(file,"r")

bytes_in=f.read()

f.close()

hello_in=bytes_in.decode(codec)

print hello_in,

python學習筆記 10 變數高階

在python中 在python中,變數的名字類似於便簽紙貼在資料上。a 1print id a b a print id b a 2 print id a b a print id b output 140709511300768 140709511300768 140709511300800 1...

python 高階學習之2

print hello hello mystring aa print mystring aa下劃線 在直譯器中有特別的含義,表示最後乙個表示式的值 a 22 traceback most recent call last file line 1,in nameerror name is not d...

python 高階學習之4

for item in e mail net surfing homework chat print item e mail net surfing homework chat for item in e mail net surfing homework chat print item e mai...