码迷,mamicode.com
首页 > 其他好文 > 详细

内置函数

时间:2017-07-16 23:34:10      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:__file__   iter   start   image   分享   required   列表   格式   用户   

前言

为何我们能直接调用dir()、id()这些方法?因为pyhton在启动时候就已经调用了内置方法,所以我们能直接使用

内置参数详情:https://docs.python.org/3/library/functions.html?highlight=built#asci

内置参数

1)all(iterable) , 若可迭代对象全为真,则返回真,负数也为真,否则返回假

1  >>> all([1,2,0])
2  False
3  >>> all((1,2,3))
4  True
5 >>> all([])
6 True

2)any(iterable),可迭代对象只要有1个为真,则返回真,负数也为真,空时返回假

1 True
2 >>> any([])
3 False
4 >>> any([1,0,3])
5 True
6 >>> any([-3])
7 True

 3)ascii(object)??

4)bin(x)  将十进制转换成二进制

>>> bin(1)
0b1
>>> bin(255)
0b11111111

5)bool([x])  判断真假

>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool([0,1])
True

6)bytearray([source[, encoding[, errors]]] 字节数组,可修改二进制的字节

bytes() 不能修改二进制字符串

 1 >>> a = bytes("abc",encoding= "utf-8")
 2 >>> a
 3 babc
 4 >>> a[0]="99"
 5 Traceback (most recent call last):
 6   File "<stdin>", line 1, in <module>
 7 TypeError: bytes object does not support it
 8 >>> b = bytearray("abc",encoding="utf-8")
 9 >>> b[0]="98"  #integer 类型
10 Traceback (most recent call last):
11   File "<stdin>", line 1, in <module>
12 TypeError: an integer is required
13 >>> b[0]=98
14 >>> b
15 bytearray(bbbc)

 7)callable(object)  判断是否可调用

1 def sayhi():
2     pass
3 print(callable(sayhi))
4 
5 返回:True

8)chr(i)  输出数字输出对应的ascii码,输入的是数字  输出对应ascii里的字符

ord(c)  输入ascii字符输出对应数字 

1 >>> chr(98)
2 b
3 >>> ord("b")
4 98

9)classmethod(function) 类方法  后面补充

10)compile(sourcefilenamemodeflags=0dont_inherit=Falseoptimize=-1)  用于底层,将代码进行编译  基本用不到

11)delattr(objectname)  面向对象再讲解

12)dir([object])  查看方法

技术分享
1 >>> a = []
2 >>> dir(a)
3 [__add__, __class__, __contains__, __delattr__, __delitem__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __getitem__, __gt__, __hash__, __iadd__, __imul__, __init__, __iter__, __le__, __len__, __lt__, __mul__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __reversed__, __rmul__, __setattr__, __setitem__, __sizeof__, __str__, __subclasshook__, append, clear, copy, count, extend, index, insert, pop, remove, reverse, sort]
View Code

13)divmod(ab)  

1 >>> divmod(5,2)
2 (2, 1)

14)enumerate(iterablestart=0)

15)eval(expressionglobals=Nonelocals=None)  把字符串转字典 只能把简单的字符串转成字典  稍微复杂语句 比如if 的条件语句用exec

16)exec(object[, globals[, locals]])  把字符串转字典  可以复杂语句 比如if 的条件语句 等

17)filter(functioniterable)  过滤出一组数据

插曲:内置函数  只处理简单运算,复杂的处理不了,这种内置函数单独使用的情况比较少 一般是结合使用的

1 def sayhi(name):
2     print(name)
3 calc = lambda name:print(name)#等同于上面
4 calc("alex")
5 结果:alex

内置函数结合filter()使用

 1 ret = filter(lambda n:n>5,range(10))
 2 print(ret)
 3 for line in ret:
 4     print(line)
 5 结果为:
 6 <filter object at 0x00285BD0>
 7 6
 8 7
 9 8
10 9

map() 处理整组数据

1 calc2 = map(lambda n:n**n,range(3))# [n*n for i in rang(3)]  相当于这个列表生成式
2 for i in calc2:
3     print(i)
4 结果:
5 1
6 1
7 4

reduce(function,iterable) 把一组可迭代序列通过function函数操作,元素之间相加或者相乘操

1 import functools
2 res = functools.reduce(lambda x,y:x+y,range(10))
3 #x,y 初始值为0,1 然后x+y=1 赋给x ,则y值为range的值 变为2,再x+y  以此类推
4 print(res)
5 结果:45

float([x]) 把一个浮点类型的字符串转换为浮点类型的数据。

1 >>> float(1)
2 1.0
3 >>> float(-6)
4 -6.0

frozenset([iterable]) 把集合变成一个不可变的集合  冻结方法

1 >>> res =frozenset([1,2,3,3])
2 >>> dir(res) #没有看到可变的方法
3 [__and__, __class__, __contains__, __delattr__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __gt__, __hash__, __init__, __iter__, __le__, __len__, __lt__, __ne__, __new__, __or__, __rand__, __reduce__, __reduce_ex__, __repr__, __ror__, __rsub__, __rxor__, __setattr__, __sizeof__, __str__, __sub__, __subclasshook__, __xor__, copy, difference, intersection, isdisjoint, issubset, issuperset, symmetric_difference, union]
4 >>> res
5 frozenset({1, 2, 3})

getattr(objectname[, default]) 后续面向对象讲解

globals()  返回当前文件所有变量的key—value  是字典格式

1 print(globals()) #返回字典格式
2 
3 {__name__: __main__, __loader__: <_frozen_importlib_external.SourceFileLoader object at 0x001F5B30>, __file__: E:/python_3.5/python_homework/day5作业/内置函数模块.py, __spec__: None, __builtins__: <module builtins (built-in)>, __doc__: None, __cached__: None, __package__: None}

 hash(object)  未写好

help([object])  显示对象帮助信息

 1 >>> help(ret)
 2 Help on list object:
 3 
 4 class list(object)
 5  |  list() -> new empty list
 6  |  list(iterable) -> new list initialized from iterables items
 7  |
 8  |  Methods defined here:
 9  |
10  |  __add__(self, value, /)
11  |      Return self+value.
12  |
13  |  __contains__(self, key, /)
14  |      Return key in self.
15  |
16  |  __delitem__(self, key, /)
17  |      Delete self[key].
18  |
19  |  __eq__(self, value, /)
20  |      Return self==value.
21 等等

hex(x)  将十进制转换十六进制

1 >>> hex(123)
2 0x7b

id(object) 查看变量的内存地址

1 >>> a = 12
2 >>> id(a)
3 1587841664

input([prompt]) 让用户输入,都是字符串格式

int(x=0)  整数的数据类型

int(xbase=10)

isinstance(objectclassinfo)  判断对象是不是可迭代对象

 1 >>> from  collections import  Iterable
 2 >>> isinstance([],Iterable)  #列表
 3 True
 4 >>> isinstance((),Iterable)  #元组
 5 True
 6 >>> isinstance({},Iterable)  #字典
 7 True
 8 >>> isinstance(abc,Iterable)  #字符串
 9 True
10 >>> isinstance(100,Iterable)   #整型
11 False

issubclass(classclassinfo)  后面说到类的时候再使用

iter(object[, sentinel]) ??

len(s

locals()

def fun():
    locals_var = 333
    print(locals())

print(globals())
fun()

结果:
{__spec__: None, __loader__: <_frozen_importlib_external.SourceFileLoader object at 0x00265B30>, __doc__: None, __cached__: None, __name__: __main__, __builtins__: <module builtins (built-in)>, __file__: E:/python_3.5/python_homework/day5作业/内置函数模块.py, __package__: None, fun: <function fun at 0x00303FA8>}
{locals_var: 333}

max(iterable*[, keydefault])  求出列表的最大值

min(iterable*[, keydefault])  求出列表的最小值

oct(x)  十进制转八进制

>>> oct(8)
0o10

class slice(stop)  切片   功能同range一样  这个没什么用

1 >>> d = range(20,30)
2 >>> d[slice(11,35)]
3 range(30, 30)

sorted(iterable[, key][, reverse])  排序 把字典进行排序

dict = {-1:1,2:3,3:9,4:0}
print(sorted(dict)) #只排了key值 输出key的值
print(sorted(dict.items()))  #按key值排序,输出整个字典
print(sorted(dict.items(),key = lambda x:x[1]))
结果:
[-1, 2, 3, 4]
[(-1, 1), (2, 3), (3, 9), (4, 0)]
[(4, 0), (-1, 1), (2, 3), (3, 9)]

sum(iterable[, start])  求和

1 >>> a =[1,2,3]
2 >>> sum(a)
3 6

super([type[, object-or-type]]) 是面向对象里很重要的继承方法 后续会讲解

 type(object)  查看数据类型

vars([object])

 

zip(*iterables)  拉链的意思,把两个序列一一对应起来

 1 a = [1,2,3,4,5]
 2 b = [a,b,c,d,e]
 3 print(zip(a,b))
 4 for i in zip(a,b):
 5     print(i)
 6 结果:
 7 <zip object at 0x00544580>
 8 (1, a)
 9 (2, b)
10 (3, c)
11 (4, d)
12 (5, e)

 __import__(nameglobals=Nonelocals=Nonefromlist=()level=0)  用处大,忘记导入模块名 但只记得 模块的字符串,可以用这个

技术分享

 

内置函数

标签:__file__   iter   start   image   分享   required   列表   格式   用户   

原文地址:http://www.cnblogs.com/wengxq/p/6979168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!