最常用的資料型態
不管在哪種程式語言,字串大概都是使用量最大的資料型態。
單引號跟雙引號的差別?
其實沒什麼差別。
操作
接下來我們看一些常見的字串操作
字串替換
1
2
3
4
5
| >>> "%s = %s" % ("eddie", "kao")
'eddie = kao'
>>> "my name is %(name)s" % {'name' : 'eddie'}
'my name is eddie'
|
字串格式化
1
2
3
4
5
6
7
8
| >>> "my name is %10s" % "eddie"
'my name is eddie'
>>> "my name is %-10%" % eddie"
'my name is eddie '
>>> "the PI is %.3f" % 3.1415926
'the PI is 3.142'
|
len() 字串長度
1
2
3
| >>> greeting = "hello, eddie"
>>> len(greeting)
12
|
算字串的長度,其實就是算有幾個字元..
字串的"運算"?
字串也可以用加號+跟乘號*,不過並不是真的像數字一樣的四則運算:
“+”(加號)
1
2
| >>> print "eddie" + "kao"
eddiekao
|
“*”(乘號)
1
2
| >>> print "eddie"*3
eddieeddieeddie
|
有人在嗎?
使用in語法,可以檢查該字串是否包含某個字元:
1
2
3
4
| >>> "a" in "abcdefg"
True
>>> "x" in "abcdefg"
False
|
切割
split
1
2
3
| >>> my_str = "xxx yyy zzz"
>>> my_str.split()
['xxx', 'yyy', 'zzz']
|
slice
1
2
3
4
5
6
7
8
9
10
11
12
| >>> my_str = "abcdefg"
>>> print my_str[0]
a
>>> print my_str[-1]
g
>>> print my_str[1:4]
bcd
>>> print my_str[:-1]
abcdef
|
中文字元怎麼切? 怎麼算?
1
2
3
4
5
6
7
8
9
| # encoding: utf-8
my_name = "高見龍"
my_name_unicode = u"高見龍"
print len(my_name) # 9
print len(my_name_unicode) # 3
for word in my_name_unicode:
print word
|
注意到前面那個小寫的u嗎? 加上u表示這個字串是unicode的,這樣一來在算字數時候,每個中文字就會被當做一個字元來計算了。
Python的字串還有很多可以介紹的,不過因為我們主要的目的是Django,所以不會打算把所有的字串方法都一一介紹一次,更多細節,請見官網文件:http://docs.python.org/library/string.html (這是個重要的章節,為了你的將來,請一定要看!)
再來,我們來看看在Python的串列(List)..