<title>title

华夏棋牌

<title>title

闇练控制Python的内置函数,加速编程速率

内置函数概览

华夏棋牌Python 2.7 的一切内置函数共有80个。闇练记着和应用这些内置函数,将年夜年夜前进写Python代码的速率和代码的优雅水平。

华夏棋牌以下代码示例用的是ipython,一个比官方说冥器好许多的说冥器,值的学习和应用。

数学相关的内置函数

abs(x) 前往一个数字的相对值

In [18]: abs(3.14)Out[18]: 3.14In [19]: abs(-3.14)Out[19]: 3.14

华夏棋牌complex(real[, imag]) 天生一个双数

In [135]: complex(1,3)Out[135]: (1+3j)

divmod(x, y) 前往x除以y的商和余数

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]: 5In [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() 函数

华夏棋牌pow(x, y[, z]) 前往x的y次幂,假定有参数z则前往幂除以z的余数(对z取模)

In [166]: pow(2,3)Out[166]: 8In [167]: pow(2,3,5)Out[167]: 3

round(number[, ndigits]) 前往一个数的四舍五入值,给出ndigits则四舍五入到第n位小数

In [170]: round(3.45)Out[170]: 3.0In [171]: round(3.55)Out[171]: 4.0In [172]: round(3.55345, 3)Out[172]: 3.553

华夏棋牌sum(sequence[, start]) 对一个数字序列求和,start为肇端职位,默许从0泉源

In [175]: sum([1,2,3,4])Out[175]: 10

数字、字符转换

bin(number), hex(number), oct(number)
把一个数字转换成二进制、十六进制、八进制字符串

 

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 TrueIn [185]: print bool(0), bool(''), bool(None)False False False

华夏棋牌chr(i) 把一个整数转换为ascii码字符, 0<= i < 256

In [188]: chr(320)---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)
<ipython-input-188-5b2996ffe50c> in <module>()----> 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) 把一个整数转换为Unicode字符, 0 <= i <= 0x10ffff

In [225]: unichr(1245)
Out[225]: u'\u04dd'

华夏棋牌ord(c) 把一个ascii码字符转换为整数

In [192]: ord('a')
Out[192]: 97In [193]: ord('\x23')
Out[193]: 35

float(x), int(x), long(x) 浮点数、整数、长整数之间的转换

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=’’) 把一个工具转换成字符串:

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]: <open file 'abc.txt', mode 'w' at 0x7f93e727a660>

In [252]: open('abc.txt', 'w')
Out[252]: <open file 'abc.txt', mode 'w' at 0x7f93e727a780>

华夏棋牌input([prompt]), raw_input() 从终端输入信息

In [253]: input('pls input a number >>')
pls input a number >>123Out[253]: 123

序列处置赏罚赏罚

all(iterable) 假定一个序列一切值都为真就前往True,否则前往False

华夏棋牌any(iterable) 假定一个序列至少有一个为真就前往True, 否则False

In [255]: all([1,2,3,4])Out[255]: TrueIn [256]: all([1,2,3,4, 0])Out[256]: FalseIn [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) 前往一个工具的元素个数

In [267]: len('abc'), len([1,2,3])
Out[267]: (3, 3)

华夏棋牌map(function, sequence[, sequence, …]) 把一个函数应用于每个元素并前往一个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, …]) 把函数作用于初始两个元素,并把前往值和下一个元素作为输入挪用函数,按序迭代一切元素

In [281]: reduce(lambda a, b: a-b, [1,2,3])Out[281]: -4

zip(seq1 [, seq2 […]]) -> [(seq1[0], seq2[0] …), (…)]
把多个序列合并成一个序列list

In [283]: zip([1,2,3], ('a', 'b', 'c'))
Out[283]: [(1, 'a'), (2, 'b'), (3, 'c')]

range() xrange() 前往一个整数序列

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) 对一个序列排序

可选参数cmp、key和reverse与list.sort()措施的参数寄义类似(在可变的序列类型一节形貌)。
cmp指定一个自界说的带有两个参数的较量函数(可迭代的元素),它应当凭证第一个参数是小于、即是照样年夜于第二个参数前往正数、零或许正数:cmp=lambda x,y: cmp(x.lower(), y.lower())。默许值是None。
key指定一个带有一个参数的函数,它用于从每个列表元素选择一个较量的要害字:key=str.lower。默许值是None(直接较量元素)。
reverse是一个布尔值。假定设置为True,那么列表元素以反向较量排序。
通常情形下,key和reverse转换处置赏罚赏罚比指定一个一概的cmp函数要快许多。这是由于cmp为每个元素挪用一再再三然则key和reverse只会触摸每个元素一次。应用functools.cmp_to_key()来转换新式的cmp函数为key函数。

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

数据结构

bytearray() dict() frozenset() list() set() tuple()
python外面经常应用的数据结构有列表(list)、字典(dict)、荟萃(set)、元组(tuple)

工具、类型

以下是一些类(class)和类型相关的函数,较量不经常应用,可以检查手册详细明确。
华夏棋牌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()

不主要的内置函数

apply() buffer() coerce() intern()

ipython

ipython是一个异常好的交互式python说冥器,它检查一个函数或类的用法的措施有:

help(xxx)

xxx?
华夏棋牌检查一个类/工具的成员函数或变量时,在类或工具变量前面输入.后按tab键:

In [292]: import timeIn [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.titime.time      time.timezone  In [293]: time.time?Docstring:time() -> floating point numberReturn 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


最后更新时间: