内置函数一
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'xc0xeexbdxdc', 'n3': True, 'r': False, 'f1': <function f1 at 0x0000000000A5C6A8>, 'b': b'xe6x9dx8exe6x9dxb0', '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