關於python的基礎知識已經告一段落了,我們接下來深入的研究python的使用方法,以及以後將要使用到的類庫。
格式化字串
python是支援字串的格式化輸出的,在之前的學習中我們也遇到過和使用過,不過我們沒有深入的研究和討論,只是一筆帶過,今天我們好好的研究一下字串的格式化。可能會用到非常複雜的表示式,但是最基本的用法是將乙個值插入到乙個有字串格式符%s的字串中。
字串的格式化
>>> k = "我們可以看出整個表示式的結果是乙個字串。第乙個%s被變數k的值替換;第二個%s的值被變數v的值替換。在字串中的其它字元都按照原樣列印輸出。uid"
>>> v = "sa"
>>> "
%s=%s
" % (k,v)
'uid = sa'
你可能在想:做乙個字串的拼接需要這麼複雜嗎?沒有問題,的確很麻煩,只不過我們做的不僅僅是字串的連線,在這個語句下,它不僅僅是格式化,同時也進行了強制型別轉換。
字串格式化與字串連線的比較
>>> uid = "sa"1.+是字串的連線操作符。>>> pwd = "
secret
">>> print(pwd + "
is not a good password for
" +uid) 1
secretis
not a good password for
sa>>> print("
%s is not a good password for %s
" %(pwd , uid)) 2
secret
isnot a good password for
sa>>> usercount = 6
>>> print("
users connected : %d
" %(usercount,)) 3 4
users connected : 6
>>> print("
users connected : %d
" %(usercount)) 5
users connected : 6
>>> print("
users connected :
"+usercount)
traceback (most recent call last):
file
"", line 1, in
print("
users connected :
"+usercount)
typeerror: can only concatenate str (
not"
int"
) to str
>>>
2.在這個簡單的例子中,字串格式化實現與連線的結果。
>>> print("1.%f 格式符選項被認為是乙個十進位制浮點數, 不指定精度時列印 6 位小數。today's stock price: %f
" % 50.123) 1
today
's stock price: 50.123000
>>> print("
today's stock price: %.2f
" % 50.123) 2
today
's stock price: 50.12
>>> print("
change since yesterday: %+.2f
" % 1.333) 3
change since yesterday: +1.33
>>>
>>> li = [1,8,9,3]1.li是我們將要對映的list,python將li中的每個元素都迴圈遍歷,然後對每個元素做乙個操作返回到list中形成乙個新的list。>>> [lis*2 for lis in
li] 1
[2, 16, 18, 6]
>>>li 2
[1, 8, 9, 3]
>>> li = [lis*2 for lis in
li] 3
>>>li
[2, 16, 18, 6]
>>>
2.這裡我們知道為什麼說是形成乙個新的list,因為原來的li這個list沒有發生改變。
3.但是如果將新生成的list賦值給li就會改變原有的list。
keys,value,和iteams函式
>>> params =1.keys方法返回乙個所有鍵的list。>>>params.keys() 1
dict_keys([
'server
', '
database
', '
uid', '
pwd'
])>>>params.values() 2
dict_values([
'mpilgrim
', '
master
', '
sa', '
secret'])
>>>params.items() 3
dict_items([(
'server
', '
mpilgrim
'), ('
database
', '
master
'), ('
uid', '
sa'), ('
pwd', '
secret
')])
>>>
2.values方法返回乙個所有值的list。
3.items 方法返回乙個形如 (key, value) 的 tuple 的 list。這個 list 包括 dictionary 中所有的資料。
連線list與分割字串
>>> "在我們繼續之前有乙個有趣的地方。我一直在重複函式是物件, 字串是物件, 每個東西都是物件的概念。您也許認為我的意思是說字串 值 是物件。但是不對, 仔細地看一下這個例子, 您將會看到字串 ";" 本身就是乙個物件, 您在呼叫它的 join 方法。;".join(["
%s=%s
"%(k,v) for k,v in
params.items()])
'server=mpilgrim;database=master;uid=sa;pwd=secret
'
總之, join 方法將 list 中的元素連線成單個字串, 每個元素用乙個分號隔開。分隔符不必是乙個分號;它甚至不必是單個字元。它可以是任何字串。
注意:join 只能用於元素是字串的 list; 它不進行任何的型別強制轉換。連線乙個存在乙個或多個非字串元素的 list 將引發乙個異常。
分割字串
>>> li = ['1.split 與 join 正好相反, 它將乙個字串分割成多元素 list。 注意, 分隔符 (「;」) 被完全去掉了, 它沒有在返回的 list 中的任意元素**現。server=mpilgrim
', '
uid=sa
', '
database=master
', '
pwd=secret']
>>> s = ";"
.join(li)
>>>s
'server=mpilgrim;uid=sa;database=master;pwd=secret
'>>> s.split(";"
) 1['
server=mpilgrim
', '
uid=sa
', '
database=master
', '
pwd=secret']
>>> s.split("
;",1) 2['
server=mpilgrim
', '
uid=sa;database=master;pwd=secret']
>>>
2.split 接受乙個可選的第二個引數, 它是要分割的次數。 (可選引數,我們之前講過)
python教程001 安裝python環境
本節內容安裝環境 linux系統發行版xubuntu 自帶python2.7版本 sudo apt get install python安裝python3版本 編輯軟體sublime 安裝linux的發行版,對於一般安裝windows系統電腦裝置推薦安裝虛擬機器,在虛擬機器上執行。xubuntu發行...
python 內建高階函式
1.map abs i for i in 1,3,4,5 1 對於序列每個元素求絕對值 import random from functools import reduce print list map abs,1,3,4,5 2 對於序列每個元素求階乘 5 import random deffac...
python 內建高階函式
1.map map 函式接收兩個引數,乙個是函式,乙個是序列 map將傳入的函式依次作用到序列的每個元素,並且把結果 作為新的序列返回 求絕對值 print map abs,1,3,4,5 輸出 map列印的不是乙個列表而是乙個物件,所以我們需要轉換為列表才能列印。print list map ab...