python全栈学习笔记(十)
#!/usr/bin/env python # -*- coding:utf-8 -*- def obj_len(arg): #如果是str、tuple、list #isinstance() if isinstance(arg,str) or isinstance(arg,list) or isinstance(arg,tuple): if len(arg) > 5: return True else: return False return None temp = 123 ret = obj_len(temp) print(ret)
结果:
None

def func(args): args.append(123) li = [11,22] func(li) print(li)
结果:
[11, 22, 123]


a = [11,22,33,44] b = a[0:2] c = a[:] print(id(a)) print(id(b)) print(id(c)) print(c)
结果:
9635520
9603792
9637440
[11, 22, 33, 44]

内置函数
圈住的都是必须会的

#!/usr/bin/env python # -*- coding:utf-8 -*- print(abs(-100)) print(abs(100))
结果:
100 100
all函数:循环参数,如果每个参数都为真,那么all的返回值为真:
all的参数接收一个可迭代对象
#!/usr/bin/env python # -*- coding:utf-8 -*- ret = [1,2,3,4,0] ret2 = [2.3,4,5] ret3 = [{},[],()] print(all(ret),all(ret2),all(ret3))
结果:
False True False
any函数则区别于all函数,它只要参数里有个为真,则为真:
#!/usr/bin/env python # -*- coding:utf-8 -*- ret = [1,2,3,4,0] ret2 = [2.3,4,5] ret3 = [{},[],(),1] print(any(ret),any(ret2),any(ret3))
结果:
True True True
bin()可以把十进制转换成二进制的数 (我们看到的是以字节的方式表示出来)
int()可以把十进制转换成十进制的数 也可以把二/八/十六进制转换成十进制
oct() 可以把十进制转换成八进制
hex()可以把十进制转换成十六进制
这几个函数我之前有讲过::
#!/usr/bin/env python # -*- coding:gbk -*- # 二进制 r =bin(12) print(r) # 八进制 r1 = oct(12) print(r1) # 十进制 r2 = int(12) print(r2) # 十六进制 r3 = hex(12) print(r3)
结果:
0b1100
0o14
12
0xc
bool函数接收一个参数,返回值为True 和False
#!/usr/bin/env python # -*- coding:utf-8 -*- ret = [0] ret2 = [{},()] ret3 = [] ret4 = 0 print(bool(ret),bool(ret2),bool(ret3),bool(ret4))
结果:
True True False False
bytes() 把字符转换成字节,参数里需要指明字符的编码。
注意如果字符是文字:字符串的字节,以16进制表示,输出的字节通过for循环一个个打印出来,默认是10进制表示:
#!/usr/bin/env python # -*- coding:gbk -*- aa = '质量' cc = bytes(aa,encoding='utf-8') print(cc) for i in cc: print(i)
结果:
b'\xe8\xb4\xa8\xe9\x87\x8f' 232 180 168 233 135 143
但如果字符串内容是数字,字母,那默认输出是以就是字符,通过for打印出来的是十进制:
#!/usr/bin/env python # -*- coding:gbk -*- aa = 'abc123' cc = bytes(aa,encoding='utf-8') print(cc) for i in cc: print(i)
结果:
b'abc123' 97 98 99 49 50 51
#!/usr/bin/env python # -*- coding:gbk -*- print(chr(97)) print(ord('b'))
结果:
a
98
#!/usr/bin/env python # -*- coding:gbk -*- a = 10/3 print(a) c = divmod(10,3) print(c)
结果:
3.3333333333333335
(3, 1)
不是什么数据都是可以执行的。callable可以检测是否可以指行
#!/usr/bin/env python # -*- coding:gbk -*- a = lambda :5 + 6 print(callable(a)) c = 19 print(callable(c))
结果:
True
False
compile是当python读取到字符串的时候,由它把字符串编译成可执行的代码:
eval可以直接把字符串转换进行计算:
#!/usr/bin/env python # -*- coding:gbk -*- a = '1+2+3+4' print(eval(a))
结果:
10
如果字符串里面是类似下面的这种表达式,eval是不能执行的。可以使用exec函数,这个相当于把字符串里面的内容转换成了python的代码来执行,而且是直接执行:
#!/usr/bin/env python # -*- coding:gbk -*- exec('for i in range(1,11):print(i)')
结果:
1 2 3 4 5 6 7 8 9 10
filter函数,通过筛选,把自己需要的选取出来:
fileter(函数,可迭代的对象)





isinstance判断是什么数据类型:









打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
- r ,只读模式【默认】
- w,只写模式【不可读;不存在则创建;存在则清空内容;】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+, 读写【可读,可写】
- w+,写读【可读,可写】(先清空,在写的之后,就可以读了)
- x+ ,写读【可读,可写】
- a+, 写读【不可读,可写】
"b"表示以字节的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型















浙公网安备 33010602011771号