>>> '%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...