31 知識點補充之內置函式

2022-07-06 16:57:10 字數 3815 閱讀 5259

#注意:內建函式id()可以返回乙個物件的身份,返回值為整數。這個整數通常對應與該物件在記憶體中的位置,但這與python的具體實現有關,不應該作為對身份的定義,即不夠精準,最精準的還是以記憶體位址為準。is運算子用於比較兩個物件的身份,等號比較兩個物件的值,內建函式type()則返回乙個物件的型別

format(了解即可)

#字串可以提供的引數 's' none

>>> format('some string','s')

'some string'

>>> format('some string')

'some string'

#整形數值可以提供的引數有 'b' 'c' 'd' 'o' 'x' 'x' 'n' none

>>> format(3,'b') #轉換成二進位制

'11'

>>> format(97,'c') #轉換unicode成字元

'a'>>> format(11,'d') #轉換成10進製

'11'

>>> format(11,'o') #轉換成8進製

'13'

>>> format(11,'x') #轉換成16進製制 小寫字母表示

'b'>>> format(11,'x') #轉換成16進製制 大寫字母表示

'b'>>> format(11,'n') #和d一樣

'11'

>>> format(11) #預設和d一樣

'11'

#浮點數可以提供的引數有 'e' 'e' 'f' 'f' 'g' 'g' 'n' '%' none

>>> format(314159267,'e') #科學計數法,預設保留6位小數

'3.141593e+08'

>>> format(314159267,'0.2e') #科學計數法,指定保留2位小數

'3.14e+08'

>>> format(314159267,'0.2e') #科學計數法,指定保留2位小數,採用大寫e表示

'3.14e+08'

>>> format(314159267,'f') #小數點計數法,預設保留6位小數

'314159267.000000'

>>> format(3.14159267000,'f') #小數點計數法,預設保留6位小數

'3.141593'

>>> format(3.14159267000,'0.8f') #小數點計數法,指定保留8位小數

'3.14159267'

>>> format(3.14159267000,'0.10f') #小數點計數法,指定保留10位小數

'3.1415926700'

>>> format(3.14e+1000000,'f') #小數點計數法,無窮大轉換成大小字母

'inf'

#g的格式化比較特殊,假設p為格式中指定的保留小數字數,先嘗試採用科學計數法格式化,得到冪指數exp,如果-4<=exp>> format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp>> format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp>> format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp>> format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp>> format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp>> format(3.1415926777,'.2g') #p=1,exp=0 ==》 -4<=exp>> format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp>> format(0.00003141566,'.1n') #和g相同

'3e-05'

>>> format(0.00003141566,'.3n') #和g相同

'3.14e-05'

>>> format(0.00003141566) #和g相同

'3.141566e-05'

lambda與內建函式結合使用

字典的運算:最小值,最大值,排序

salaries=

迭代字典,取得是key,因而比較的是key的最大和最小值

>>> max(salaries)

'yuanhao'

>>> min(salaries)

'alex'

可以取values,來比較

>>> max(salaries.values())

>>> min(salaries.values())

但通常我們都是想取出,工資最高的那個人名,即比較的是salaries的值,得到的是鍵

>>> max(salaries,key=lambda k:salary[k])

'alex'

>>> min(salaries,key=lambda k:salary[k])

'yuanhao'

也可以通過zip的方式實現

salaries_and_names=zip(salaries.values(),salaries.keys())

先比較值,值相同則比較鍵

>>> max(salaries_and_names)

(100000000, 'alex')

salaries_and_names是迭代器,因而只能訪問一次

>>> min(salaries_and_names)

traceback (most recent call last):

file "", line 1, in valueerror: min() arg is an empty sequence

sorted(iterable,key=none,reverse=false)

eval與exec

#1、語法

# eval(str,[,globasl[,locals]])

# exec(str,[,globasl[,locals]])

#2、區別

#示例一:

s='1+2+3'

print(eval(s)) #eval用來執行表示式,並返回表示式執行的結果

print(exec(s)) #exec用來執行語句,不會返回任何值

'''6

none

'''#示例二:

print(eval('1+2+x',,)) #返回33

print(exec('1+2+x',,)) #返回none

# print(eval('for i in range(10):print(i)')) #語法錯誤,eval不能執行表示式

print(exec('for i in range(10):print(i)'))

complie(了解即可)

compile(str,filename,kind)

filename:用於追蹤str來自於哪個檔案,如果不想追蹤就可以不定義

kind可以是:single代表一條語句,exec代表一組語句,eval代表乙個表示式

s='for i in range(10):print(i)'

code=compile(s,'','exec')

exec(code)

s='1+2+3'

code=compile(s,'','eval')

eval(code)

Python基礎知識點學習之內置型別

想要學好python,一定要學好各類知識點,比如類 物件 資料型別等。有部分同學對於內建型別概念模糊,接下來我分享的python基礎知識點彙總就給大家簡單梳理一下。內建型別是指任何語言在設計初期定義的型別,如c語言中的int double char等。它也是在一種語言中最基本的型別,與編譯器編譯出的...

正則知識點補充

1.與正規表示式有關的字串物件的方法 string.replace pattern,string 替換在正規表示式查詢中找到的文字。string.search pattern 通過正規表示式查詢相應的字串,只是判斷有無匹配的字串。如果查詢成功,search 返回匹配串的位置,否則返回 1。strin...

property知識點補充

1 synthesize和 dynamic作用 1 property有兩個對應的詞,乙個是 synthesize,乙個是 dynamic。如果 synthesize和 dynamic都沒寫,那麼預設的就是 syntheszie var var 2 synthesize的語義是如果你沒有手動實現set...