函数--内置函数

内置函数一

 

 python官网源代码:https://docs.python.org/2/library/functions.html

 

 

abs() 绝对值
all() 当all里面的元素全部为真,返回结果为True ; 当all里的元素有一个为假,返回结果为False
any() 当any里的元素任意一个为真时,返回True;
ascii() 当执行这个函数时,会自动调用某个对象__repr__方法,并且返回__repr__的return值
bin() 把一个十进制转换二进制
oct() 把一个十进制转换八进制
hex() 把一个十进制转换十六进制
bool() 返回函数里的对象是否为True或者False  (以下常见的False对象:0,None,"",[],())
bytes() 将字符串转换成字节类型, 转换格式为:bytes(只要转换的字符串,按照什么编码)
   
callable() 判断参数值是否能被执行调用
chr() ascii码的对应关系:ascii码转成字符转
ord() ascii码的对应关系:字符转成ascii码
classmethod() 类别的方法,面向对象中会讲
compile() 把一个字符串编译成一个python代码,然后通过exec()执行compile编译好的python代码
exec() 执行python代码,可以接收转换好了的python代码,或者将字符串转换成python代码;(但是没有返回值)
eval() 可以执行表达式,并且可以获取返回值;  eg:s = '8*8'    a= eval(s)  print(a) 等于64 &    s = 'print(123)'  a= eval(s)  print(a) 等于123
enumerate() 显示元素的索引
complex() 处理负数。
delattr() 反射,delattr,getattr,setattr,hasattr以后会讲
dir() 快速获取对象下面有什么方法
divmod() 获取商值,并获取余数,返回元祖;(可用于分页表达)
isinstance() 判断对象是否归属于某个类的实例,例如 s = "alex"  r= isinstance(s,str)  print(r)  #True  'alex'是个字符串,是属于str,所以返回一个True
filter() 过滤元素。格式:ret = filter(函数,可迭代的对象)  循环第二个可迭代的对象,然后逐个传值到第一个函数里,得出的结果返回给ret;
map() 过滤元素。与filter类似,区别: map将函数返回值,添加到结果中(无论真假)。filter函数体返回True,将元素添加到结果中。(如果是false,则丢弃)
float() 转换为浮点型
globals() python在执行代码的时候,会把所有的全局变量放在这里
locals() python在执行代码的时候,会把所有的局部变量放在这里
hash() 将对象转换成hash值,用于字典的key存入到内存中。
id() 查看内存地址
object() 所有类的父类
issubclass 查看某个类是不是这个类的子类
len() 查看长度
max() 最大值
min() 最小值
sum() 求和
round() 四舍五入
pow() 返回 xy(x的y次方) 的值。
range() 自定义数字范围
repr() 自动调用字符串下的__repr__的方法
open() 打开文本文件
print() 打印显示
input() 等待用户输入
tuple() 转换成元祖
type() 转换成类型
set() 转换集合
list() 转换成列表
dict() 转换成字典
int() 转换整数
str() 将字节转换成字符串,用什么样的字符集转成字节,就用什么字符集转成字符串,
vars() 当前模块都有那些变量
zip() 依次取出每一个数组的元素,然后组合   例如:zip([1,2,3],['a','b','c'],[4,5,6])       [(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]   如果没有对称的就不做匹配

 

 内置函数的练习

  1 #!/usr/bin/env python
  2 # -*- coding:utf8 -*-
  3 # Author:Dong Ye
  4 
  5 #abs()绝对值:
  6 n = abs(-1)
  7 print('n-->',n)
  8 # n--> 1
  9 
 10 
 11 #所有为真,才为真
 12 n1 = all([1,2,3,4,5])
 13 print('n1-->',n1)
 14 # n1--> True
 15 
 16 
 17 n2 = all([1,2,3,4,5,0])
 18 print('n2-->',n2)
 19 # n1--> True
 20 # n2--> False
 21 
 22 
 23 #任何一个为真,就为真
 24 n3 = any([1,0,"",[],None])
 25 print('n3-->',n3)
 26 # n3--> True
 27 
 28 
 29 #十进制转换二、八、十六进制:
 30 print('二进制-->',bin(5))
 31 print('十进制-->',oct(5))
 32 print('十六进制-->',hex(5))
 33 # 二进制--> 0b101
 34 # 十进制--> 0o5
 35 # 十六进制--> 0x5
 36 
 37 
 38 #布尔值:
 39 print('为假-->',bool([]))
 40 print('为真-->',bool(-1))
 41 # 为假--> False
 42 # 为真--> True
 43 
 44 #字符串转字节:
 45 b = bytes('李杰',encoding='utf-8')
 46 print('b-->',b)
 47 
 48 b1 = bytes('李杰',encoding='gbk')
 49 print('b-->',b1)
 50 
 51 
 52 #字节转换成字符串:
 53 s = str(bytes('李杰',encoding='gbk'),encoding='gbk')
 54 print('s-->',s)
 55 #字符串用什么样的编码变成字节了,也要用同样的编码转成字符串。
 56 
 57 
 58 
 59 #判断参数是否能被调用执行:
 60 def f1():
 61     pass
 62 
 63 f2 = 123
 64 
 65 c1  = callable(f1)
 66 c2  = callable(f2)
 67 print('callable(f1)-->',c1)
 68 print('callable(f2)-->',c2)
 69 # callable(f1)--> True
 70 # callable(f2)--> False
 71 
 72 
 73 
 74 
 75 #字符与ascii码的转换:
 76 c = chr(65)
 77 print(c)
 78 
 79 o = ord("a")
 80 print(o)
 81 
 82 # A
 83 # 97
 84 
 85 
 86 
 87 
 88 #以下三个函数是一组:
 89 # compile() :把一个字符串编译成一个python代码
 90 # eval():
 91 # exec():执行一个python代码
 92 
 93 '''
 94 python解析器要打开文件的步骤:
 95 1、加载:要读取文件内容open,将字符串加载到内存
 96 2、编译:python内部把一个字符串->编译成一个特殊的代码 & 编译成python代码
 97 3、执行:执行代码
 98 
 99 注意:
100 编译有三种模式:single  eval  exec
101 single:把代码编译成单行的python程序
102 eval:把代码编译成表达式,并且有返回值
103 exec:把代码编译成python代码一模一样的东西
104 
105 
106 用途:有个exel,里面有列如下:
107 主机名     IP        内存
108 c1.com   1.1.1.1    8*8
109 c1.com   1.1.1.1    6*8
110 
111 需求:如果想求IP为1.1.1.1的总内存多大
112 分析:
113 这时会就需要逐行读取内存列,然后通过计算8*8得出总内存结果。
114 当处理exel的时候,是一行一行的进行读取。
115 当读取到内存列的时候,应该是一个字符串,那问题来了?
116 怎么样让字符串8*8进行运算呢?
117 s = '8*8'
118 可以使用eval(s)函数,将字符串变成python表达式,这样就鞥查出结果。
119 
120 
121 
122 参考视频教程:内置补充函数(二)
123 '''
124 
125 #compile()将字符串编译成python代码
126 s = "print(123)"
127 #先编译:
128 #将字符串编译成python代码
129 r = compile(s,"<string>","exec")
130 print(r)
131 #exec执行python代码,可以接收代码或者字符串(但是没有返回值)
132 exec(r)
133 # <code object <module> at 0x00000000009E5C90, file "<string>", line 1>
134 # 123
135 
136 
137 
138 #eval()可以执行表达式,并且可以获取返回值:
139 s = '8*8'
140 a = eval(s)
141 print(a)
142 #64
143 
144 
145 
146 #获取商值,并获取余数,返回元祖;(可用于分页表达)
147 d1,d2 = divmod(100,10)
148 print(d1,d2)
149 #10 0
150 
151 
152 
153 '''
154 对象和类的关系:
155 对象是类的实例:
156 例如:
157 汽车是类,对象是大汽车,小汽车,电动车等
158 人类是类,对象有大人,小孩,男人,女人等
159 '''
160 s="alex" #创建了个对象,对象就是s
161 r= isinstance(s,dict)
162 r1 = isinstance(s,str)
163 print(r)
164 print(r1)
165 # False
166 # True
167 
168 
169 s1 = [1,2,3]
170 r2 = isinstance(s,list)
171 print(r2)
172 # False
173 
174 
175 #filter  map
176 #需求:无filter,所有大于22的值取出,小于22的值放弃:
177 def f1(args):
178     result = []
179     for item in args:
180         if item > 22:
181             result.append(item)
182     return result
183 
184 li = [11,22,33,44,55,66]
185 ret = f1(li)
186 print('没有filter取大于22的值-->',ret)
187 #显示结果:
188 #没有filter取大于22的值 [33, 44, 55, 66]
189 
190 
191 
192 #有filter(函数,可迭代的对象)的取值:
193 def f2(a):
194     if a > 22:
195         return  True
196 
197 li = [11,22,33,44,55,66]
198 ret = filter(f2,li)
199 print('有filter取大于22的值-->',list(ret))
200 #显示结果:
201 # 有filter取大于22的值--> [33, 44, 55, 66]
202 
203 
204 #格式解释:
205 # ret = filter(函数,可迭代的对象)
206 # 1、先for循环第二个参数(可迭代的对象)。
207 # 2、在每一次循环的内部又会执行第一个参数(函数体)。
208 # 3、执行第一个参数拿到一个结果,如果为真;
209 # 4、则会把该元素添加到列表里,并返回结果;
210 # 5、可迭代的对象:列表,元祖,字典等
211 
212 
213 #filter与lambda表达式混用:
214 li = [11,22,33,44,55,66]
215 ret = filter(lambda a: a > 33,li)
216 print(list(ret))
217 
218 
219 
220 #map的使用方式:
221 #需求:
222 #1、无map函数时,使每一个元素+100
223 li = [11,22,33,44,55,66]
224 def f3(args):
225     result = []
226     for i in args:
227         result.append(100+i)
228 
229     return result
230 
231 ret = f3(li)
232 print(list(ret))
233 #显示结果:
234 #[111, 122, 133, 144, 155, 166]
235 
236 
237 
238 #2、map内置函数:
239 #格式:map(函数,可迭代的对象)
240 li = [11,22,33,44,55,66]
241 
242 def f4(args):
243    return  args+100
244 
245 result = map(f4,li)
246 print(list(result))
247 
248 
249 #3、map+lambda表达式:
250 result = map(lambda a:a+100,li)
251 print(list(result))
252 
253 #显示结果:
254 # [111, 122, 133, 144, 155, 166]
255 # [111, 122, 133, 144, 155, 166]
256 # [111, 122, 133, 144, 155, 166]
257 
258 
259 #####################两个函数区别##################
260 #filter:函数体返回True,将元素添加到结果中
261 #map:将函数返回值,添加到结果中
262 ######################################
263 
264 
265 
266 #gloabls() & local()
267 #例如:
268 name = 'alex'
269 def show():
270     a = 123
271     b = 123
272     print(locals())
273     print(globals())
274 
275 show()
276 
277 #显示结果:
278 # {'a': 123, 'b': 123}
279 # {'__package__': None, 'a': 64, '__builtins__': <module 'builtins' (built-in)>, 'ret': [111, 122, 133, 144, 155, 166], 'name': 'alex', '__doc__': None, '__file__': 'D:/软件/pychar/data/s13/day3/内置函数.py', 'r2': False, 'f2': <function f2 at 0x0000000000A5C378>, 'c2': False, 's1': [1, 2, 3], 'd2': 0, 'c': 'A', '__spec__': None, 'n2': False, 'f4': <function f4 at 0x0000000000A5C7B8>, '__cached__': None, 'result': <map object at 0x0000000000A79A20>, 'f3': <function f3 at 0x0000000000A5C840>, 'li': [11, 22, 33, 44, 55, 66], 's': 'alex', 'o': 97, 'b1': b'\xc0\xee\xbd\xdc', 'n3': True, 'r': False, 'f1': <function f1 at 0x0000000000A5C6A8>, 'b': b'\xe6\x9d\x8e\xe6\x9d\xb0', 'r1': True, 'c1': True, 'show': <function show at 0x0000000000A5C950>, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000000678A58>, '__name__': '__main__', 'd1': 10, 'n1': True, 'n': 1}
280 #注意python在执行全局变量时,有很多的是内部定义好的全局变量。
281 
282 
283 s = 'u1'
284 print(len(s))
285 #2
View Code

 

posted @ 2017-12-14 03:32  风之岚翔  阅读(219)  评论(0编辑  收藏  举报