Python高階教程001內建資料型別

2021-09-24 19:42:56 字數 4467 閱讀 1533

關於python的基礎知識已經告一段落了,我們接下來深入的研究python的使用方法,以及以後將要使用到的類庫。

格式化字串

python是支援字串的格式化輸出的,在之前的學習中我們也遇到過和使用過,不過我們沒有深入的研究和討論,只是一筆帶過,今天我們好好的研究一下字串的格式化。可能會用到非常複雜的表示式,但是最基本的用法是將乙個值插入到乙個有字串格式符%s的字串中。

字串的格式化

>>> k = "

uid"

>>> v = "sa"

>>> "

%s=%s

" % (k,v)

'uid = sa'

我們可以看出整個表示式的結果是乙個字串。第乙個%s被變數k的值替換;第二個%s的值被變數v的值替換。在字串中的其它字元都按照原樣列印輸出。

你可能在想:做乙個字串的拼接需要這麼複雜嗎?沒有問題,的確很麻煩,只不過我們做的不僅僅是字串的連線,在這個語句下,它不僅僅是格式化,同時也進行了強制型別轉換。

字串格式化與字串連線的比較

>>> uid = "sa"

>>> 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

>>>

1.+是字串的連線操作符。

2.在這個簡單的例子中,字串格式化實現與連線的結果。

>>> print("

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

>>>

1.%f 格式符選項被認為是乙個十進位制浮點數, 不指定精度時列印 6 位小數。

>>> li = [1,8,9,3]

>>> [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]

>>>

1.li是我們將要對映的list,python將li中的每個元素都迴圈遍歷,然後對每個元素做乙個操作返回到list中形成乙個新的list。

2.這裡我們知道為什麼說是形成乙個新的list,因為原來的li這個list沒有發生改變。

3.但是如果將新生成的list賦值給li就會改變原有的list。

keys,value,和iteams函式

>>> params = 

>>>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

')])

>>>

1.keys方法返回乙個所有鍵的list。

2.values方法返回乙個所有值的list。

3.items 方法返回乙個形如 (key, value) 的 tuple 的 list。這個 list 包括 dictionary 中所有的資料。

連線list與分割字串

>>> "

;".join(["

%s=%s

"%(k,v) for k,v in

params.items()])

'server=mpilgrim;database=master;uid=sa;pwd=secret

'

在我們繼續之前有乙個有趣的地方。我一直在重複函式是物件, 字串是物件, 每個東西都是物件的概念。您也許認為我的意思是說字串 值 是物件。但是不對, 仔細地看一下這個例子, 您將會看到字串 ";" 本身就是乙個物件, 您在呼叫它的 join 方法。

總之, join 方法將 list 中的元素連線成單個字串, 每個元素用乙個分號隔開。分隔符不必是乙個分號;它甚至不必是單個字元。它可以是任何字串。

注意:join 只能用於元素是字串的 list; 它不進行任何的型別強制轉換。連線乙個存在乙個或多個非字串元素的 list 將引發乙個異常。

分割字串

>>> li = ['

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']

>>>

1.split 與 join 正好相反, 它將乙個字串分割成多元素 list。 注意, 分隔符 (「;」) 被完全去掉了, 它沒有在返回的 list 中的任意元素**現。

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