摘要:圖片描述內(nèi)置函數(shù)概覽的所有內(nèi)置函數(shù)共有個。熟練記住和使用這些內(nèi)置函數(shù),將大大提高寫代碼的速度和代碼的優(yōu)雅程度。
圖片描述
內(nèi)置函數(shù)概覽
Python 2.7 的所有內(nèi)置函數(shù)共有80個。熟練記住和使用這些內(nèi)置函數(shù),將大大提高寫Python代碼的速度和代碼的優(yōu)雅程度。
以下代碼示例用的是ipython,一個比官方解釋器好很多的解釋器,值的學(xué)習(xí)和使用。
數(shù)學(xué)相關(guān)的內(nèi)置函數(shù)
abs(x) 返回一個數(shù)字的絕對值
In [18]: abs(3.14) Out[18]: 3.14 In [19]: abs(-3.14) Out[19]: 3.14
complex(real[, imag]) 生成一個復(fù)數(shù)
In [135]: complex(1,3) Out[135]: (1+3j)
divmod(x, y) 返回x除以y的商和余數(shù)
In [143]: divmod(12, 7) Out[143]: (1, 5)
max(iterable[, key]) 返回一個序列的最大元素
In [157]: max([(1,2,3), (4,5,6), (23,4,1,)], key=lambda a: a[-1]) Out[157]: (4, 5, 6) In [158]: max(1,2,3,4,4,5) Out[158]: 5 In [159]: max([(1,2,3), (4,5,6), (23,4,1,)]) Out[159]: (23, 4, 1) In [160]: max([(1,2,3), (4,5,6), (23,4,1,)], key=lambda a: a[-1]) Out[160]: (4, 5, 6) In [161]: max([{"age":10, "name": "aaa"}, {"age": 12, "name": "bb"}], key=lambda a: a["age"]) Out[161]: {"age": 12, "name": "bb"}
min(iterable[, key]) 返回一個序列的最小元素
參見上面的max() 函數(shù)
pow(x, y[, z]) 返回x的y次冪,如果有參數(shù)z則返回冪除以z的余數(shù)(對z取模)
In [166]: pow(2,3) Out[166]: 8 In [167]: pow(2,3,5) Out[167]: 3
round(number[, ndigits]) 返回一個數(shù)的四舍五入值,給出ndigits則四舍五入到第n位小數(shù)
In [170]: round(3.45) Out[170]: 3.0 In [171]: round(3.55) Out[171]: 4.0 In [172]: round(3.55345, 3) Out[172]: 3.553
sum(sequence[, start]) 對一個數(shù)字序列求和,start為起始位置,默認(rèn)從0開始
In [175]: sum([1,2,3,4]) Out[175]: 10
數(shù)字、字符轉(zhuǎn)換
bin(number), hex(number), oct(number)
把一個數(shù)字轉(zhuǎn)換成二進(jìn)制、十六進(jìn)制、八進(jìn)制字符串
In [204]: print bin(20), hex(16), oct(9) 0b10100 0x10 011
bool(x) 如果x是真則返回True,否則返回False
In [184]: print bool(3), bool("a") True True In [185]: print bool(0), bool(""), bool(None) False False False
chr(i) 把一個整數(shù)轉(zhuǎn)換為ascii碼字符, 0<= i < 256
In [188]: chr(320) --------------------------------------------------------------------------- ValueError Traceback (most recent call last)in () ----> 1 chr(320) ValueError: chr() arg not in range(256) In [189]: chr(65) Out[189]: "A" In [190]: chr(0) Out[190]: "x00"
unichr(i) 把一個整數(shù)轉(zhuǎn)換為Unicode字符, 0 <= i <= 0x10ffff
In [225]: unichr(1245) Out[225]: u"u04dd"
ord(c) 把一個ascii碼字符轉(zhuǎn)換為整數(shù)
In [192]: ord("a") Out[192]: 97 In [193]: ord("x23") Out[193]: 35
float(x), int(x), long(x) 浮點數(shù)、整數(shù)、長整數(shù)之間的轉(zhuǎn)換
In [196]: print float("13"), float(13) 13.0 13.0 In [197]: print int("14"), int(14) 14 14 In [198]: print long("15"), long(15) 15 15
format(value[, format_spec]) 對value按照format_spec格式化
In [212]: format(123, "05d") Out[212]: "00123"
以上等同于 print ‘%05d’ % 123
hash(ojbect) 對object計算hash值
In [218]: hash(123) Out[218]: 123 In [219]: hash("abc") Out[219]: 1453079729188098211
str(object=’’) 把一個對象轉(zhuǎn)換成字符串:
In [221]: str(123) Out[221]: "123" In [222]: str([1,2,3]) Out[222]: "[1, 2, 3]" In [223]: str({"a": 1, "b": 2}) Out[223]: "{"a": 1, "b": 2}"
輸入輸出
file(name[, mode[, buffering]]), open 打開一個文件
In [251]: file("abc.txt", "w") Out[251]:In [252]: open("abc.txt", "w") Out[252]: input([prompt]), raw_input() 從終端輸入信息 In [253]: input("pls input a number >>") pls input a number >>123 Out[253]: 123
序列處理
all(iterable) 如果一個序列所有值都為真就返回True,否則返回False
any(iterable) 如果一個序列至少有一個為真就返回True, 否則False
In [255]: all([1,2,3,4]) Out[255]: True In [256]: all([1,2,3,4, 0]) Out[256]: False In [257]: any([1,2,3,4, 0]) Out[257]: True
enumerate(iterable[, start]) 遍歷一個序列的元素及其索引
In [261]: for i, value in enumerate(["a", "b", "c"]): .....: print i, value .....: 0 a 1 b 2 c
filter(function or None, squence) 返回滿足function(item)為True的元素
In [263]: filter(lambda x: x>3, [1,2,3,4,5]) Out[263]: [4, 5]
iter(collection) 返回一個對象的迭代器
讀取文件的時候比較有用:
with open("mydata.txt") as fp: for line in iter(fp.readline, "STOP"): process_line(line)
len(object) 返回一個對象的元素個數(shù)
In [267]: len("abc"), len([1,2,3]) Out[267]: (3, 3)
map(function, sequence[, sequence, …]) 把一個函數(shù)應(yīng)用于每一個元素并返回一個list
In [269]: map(lambda x: x+3, [1,2,3]) Out[269]: [4, 5, 6] In [270]: a = [1,2]; b = ["a", "b"]; c = ("x", "y") In [271]: map(None, a, b, c) Out[271]: [(1, "a", "x"), (2, "b", "y")]
reduce(function, sequence[, sequence, …]) 把函數(shù)作用于初始兩個元素,并把返回值和下一個元素作為輸入調(diào)用函數(shù),依次迭代所有元素
In [281]: reduce(lambda a, b: a-b, [1,2,3]) Out[281]: -4
zip(seq1 [, seq2 […]]) -> [(seq1[0], seq2[0] …), (…)]
把多個序列合并成一個序列l(wèi)ist
In [283]: zip([1,2,3], ("a", "b", "c")) Out[283]: [(1, "a"), (2, "b"), (3, "c")]
range() xrange() 返回一個整數(shù)序列
In [274]: [x for x in xrange(10)] Out[274]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [275]: [x for x in xrange(5, 10)] Out[275]: [5, 6, 7, 8, 9] In [276]: [x for x in xrange(5, 10, 2)] Out[276]: [5, 7, 9] In [277]: range(10) Out[277]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [278]: range(5, 10) Out[278]: [5, 6, 7, 8, 9] In [279]: range(5, 10, 2) Out[279]: [5, 7, 9]
sorted(iterable, cmp=None, key=None, reverse=False) 對一個序列排序
可選參數(shù)cmp、key和reverse與list.sort()方法的參數(shù)含義相同(在可變的序列類型一節(jié)描述)。
cmp指定一個自定義的帶有兩個參數(shù)的比較函數(shù)(可迭代的元素),它應(yīng)該根據(jù)第一個參數(shù)是小于、等于還是大于第二個參數(shù)返回負(fù)數(shù)、零或者正數(shù):cmp=lambda x,y: cmp(x.lower(), y.lower())。默認(rèn)值是None。
key指定一個帶有一個參數(shù)的函數(shù),它用于從每個列表元素選擇一個比較的關(guān)鍵字:key=str.lower。默認(rèn)值是None(直接比較元素)。
reverse是一個布爾值。如果設(shè)置為True,那么列表元素以反向比較排序。
通常情況下,key和reverse轉(zhuǎn)換處理比指定一個等同的cmp函數(shù)要快得多。這是因為cmp為每個元素調(diào)用多次但是key和reverse只會觸摸每個元素一次。使用functools.cmp_to_key()來轉(zhuǎn)換舊式的cmp函數(shù)為key函數(shù)。
In [288]: sorted(d.items(), key=lambda a: a[1]) Out[288]: [("a", 3), ("b", 4)] In [289]: sorted(d.items(), key=lambda a: a[1], rev) In [289]: sorted(d.items(), key=lambda a: a[1], reverse=True) Out[289]: [("b", 4), ("a", 3)] In [290]: sorted(d.items(), cmp=lambda a, b: cmp(a[1], b[1])) Out[290]: [("a", 3), ("b", 4)]
數(shù)據(jù)結(jié)構(gòu)
bytearray() dict() frozenset() list() set() tuple()
python里面常用的數(shù)據(jù)結(jié)構(gòu)有列表(list)、字典(dict)、集合(set)、元組(tuple)
對象、類型
以下是一些類(class)和類型相關(guān)的函數(shù),比較不常用,可以查看手冊詳細(xì)了解。
basestring() callable() classmethod() staticmethod() property() cmp() compile() delattr() getattr() setattr() hasattr() dir() globals() locals() vars() help() id() isinstance() issubclass() object() memoryview() repr() super() type() unicode() import() eval() execfile()
不重要的內(nèi)置函數(shù)
apply() buffer() coerce() intern()
ipython
ipython是一個非常好的交互式python解釋器,它查看一個函數(shù)或類的用法的方法有:
help(xxx)
xxx?
查看一個類/對象的成員函數(shù)或變量時,在類或?qū)ο笞兞亢竺孑斎?后按tab鍵:
In [292]: import time In [293]: time. time.accept2dyear time.clock time.gmtime time.sleep time.struct_time time.tzname time.altzone time.ctime time.localtime time.strftime time.time time.tzset time.asctime time.daylight time.mktime time.strptime time.timezone In [293]: time.ti time.time time.timezone In [293]: time.time? Docstring: time() -> floating point number Return the current time in seconds since the Epoch. Fractions of a second may be present if the system clock provides them. Type: builtin_function_or_method
文章首發(fā)于我的個人博客,同時我也在猿人學(xué)網(wǎng)站上寫Python教程
你也可以關(guān)注我的個人公眾號:猿人學(xué)Python
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43422.html
一直在網(wǎng)站上學(xué)習(xí)別人的測試之路,現(xiàn)在也想分享一下自己的經(jīng)歷。 結(jié)緣測試 和大家不同的地方在于,作為一名生物醫(yī)學(xué)工程專業(yè)畢業(yè)生,我都是在醫(yī)療行業(yè)打轉(zhuǎn)。 我的軟件測試之旅分為兩段,第一段是一份實習(xí),從2019年9月到2020年1月,第二段是畢業(yè)后的第一份工作,從2020年4月到今天。 實習(xí)之路 雖然從時間上來看,我的軟件測試之旅接近兩年,尤其是第一份實習(xí),雖然時間跨度有四個月,但因為當(dāng)時學(xué)校導(dǎo)師給的壓...
摘要:通過執(zhí)行時間對比可以發(fā)現(xiàn)調(diào)用函數(shù)來擴(kuò)展功能可以大大提高執(zhí)行速度,而自帶的庫由于在源生代碼上進(jìn)行封裝,執(zhí)行時間會高于源生代碼擴(kuò)展方式,但庫使用方便,特別適合應(yīng)用在第三方封裝代碼,提供動態(tài)鏈接庫和調(diào)用文檔的場合。 前言 當(dāng)我們提到一門編程語言的效率時,通常包含了開發(fā)效率和運行效率這兩層意思。Python作為一門高級語言,它功能強大,易于掌握,能夠快速的開發(fā)軟件,life?is?short,...
摘要:根據(jù)具體的自動化測試崗位來說的,不要覺得自動化測試是機(jī)構(gòu)炒起來的,確實有它存在的必要。自動化測試是相對手工測試而存在的,主要是通過所開發(fā)的軟件測試工具腳本等來實現(xiàn),具有良好的可操作性可重復(fù)性和高效率等特點。 當(dāng)代的打工人真的太苦了! 每個月拿著幾千塊的工資,卻為公司拼命,為老板賺錢; 天天9...
摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。 開篇 前端開發(fā)是一個非常特殊的行業(yè),它的歷史實際上不是很長,但是知識之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研...
閱讀 2727·2021-11-22 15:22
閱讀 1631·2021-11-22 14:56
閱讀 3616·2021-09-22 15:12
閱讀 2403·2021-09-02 15:41
閱讀 2122·2021-08-27 16:26
閱讀 1113·2019-08-30 15:55
閱讀 2139·2019-08-29 17:30
閱讀 665·2019-08-29 16:26