1、lambda函数
学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,函数同样有简单的表示方法
# ###################### 普通函数 ######################
# 定义函数(普通方式)
def func(a):
return a + # 执行函数
result = func() # ###################### lambda ###################### # 定义函数(lambda表达式)
my_lambda = lambda a : a + # 执行函数
result = my_lambda()
2、python的部分内置函数
abs,取绝对值
i = abs(-152)
print(i)
152
all,循环参数,如果所有元素的值都为真,返回真,否则假
a = all([1,1,0])
print(a)
False
any,只要有一个为真,则为真
a = any([0,0,0,1])
print(a)
True
ascii,去对象的类中找到__repr__方法并且获取其返回值
class a:
def __repr__(self):
return "hello"
b = a()
c = ascii(b)
print(c)
hello
bin(),oct(),int(),hex(),分别表示将十进制数字转换为二进制,八进制,十进制,十六进制,下边介绍一种16转10的写法
i = int("b",base = 16)
print(i)
11
chr(),传入一个数字,它会把数字转为二进制然后获取这个二进制数字在ASCII码中对应的字符或符号
a = chr(77)
print(a)
M
ord则是字母或字符对应的数字
a = ord("c")
print(a)
99
查看一个对象是否可执行,如果是返回真,否则假。
def f1():
return 123
r = callable(f1)
print(r)
True
求俩数字的商和余数
r = divmod(10,3)
print(r)
(3, 1)
eval,将字符串转为表达式,他是有返回值得
i = eval("1+3")
print(i)
4
exec是没有返回值的,用来执行比较复杂的字符串表达式
exec("for i in range(10):print(i)")
0
1
2
3
4
5
6
7
8
9
filter,filter(函数,可迭代对象),以可迭代对象里的元素为函数的参数进行迭代运行,筛选为真的元素
def f1(x):
if x > 22:
return True
else:
return False
r = filter(f1,[11,22,33,44,55])
for i in r:
print(i)
33
44
55
可结合lambda,写法如下
r = filter(lambda x: x > 22,[11,22,33,44,55])
for i in r:
print(i)
map,用一个函数对后边的可迭代对象循环进行操作
r = map(lambda x: x + 100,[11,22,33,44,55])
for i in r:
print(i)
111
122
133
144
155
globals()所有全局变量,locals()获取所有局部变量
hash()把一个对象转换为哈希值,这样可以节省内存
i = hash("ertt34rwef34tsefw4t3fwef34twefwegt4te4t")
print(i)
6916591429187914356
iter(),创建一个可迭代对象,然后用next()一个个循环取值,
i = iter([11,22,33,44,55])
r = next(i)
print(r)
r = next(i)
print(r)
r = next(i)
print(r)
11
22
33
取最大值和最小值的方法
i = [11,22,33,44,55,66,77,88,]
a = max(i)
b = min(i)
print(a,b)
88 11
求一个数的多少次方
i = pow(2,5)
print(i)
32
reversed,把有序 的数据倒序迭代
i = reversed([11,22,33])
for a in i:
print(a)
33
22
11
round,四舍五入一个数字
i = round(2.3)
print(i)
2
3、文件的操作
open函数,该函数用于文件处理
操作文件时,一般需要经历如下步骤:
- 打开文件
- 操作文件
一、打开文件
1
|
文件句柄 = open ( '文件路径' , '模式' )
|
打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
- r ,只读模式【默认】
- w,只写模式【不可读;不存在则创建;存在则清空内容;】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【不可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+, 读写【可读,可写】
- w+,写读【可读,可写】
- x+ ,写读【可读,可写】
- a+, 写读【可读,可写】
"b"表示以字节的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打开时,读不需要提供编码参数,写则需要,下边是写入的示例
= open("hehe","wb")
f.write(bytes("zhongg",encoding = "utf-8"))
f.close()
文件操作的常用方法说明
def close(self, *args, **kwargs): # real signature unknown
关闭文件
pass def fileno(self, *args, **kwargs): # real signature unknown
文件描述符
pass def flush(self, *args, **kwargs): # real signature unknown
刷新文件内部缓冲区
pass def isatty(self, *args, **kwargs): # real signature unknown
判断文件是否是同意tty设备
pass def read(self, *args, **kwargs): # real signature unknown
读取指定字节数据,如果打开方式为二进制方式就是字节数,如果不是就是字符数。
pass def readable(self, *args, **kwargs): # real signature unknown
是否可读
pass def readline(self, *args, **kwargs): # real signature unknown
仅读取一行数据
pass def seek(self, *args, **kwargs): # real signature unknown
指定文件中指针位置
pass def seekable(self, *args, **kwargs): # real signature unknown
指针是否可操作
pass def tell(self, *args, **kwargs): # real signature unknown
获取指针位置
pass def truncate(self, *args, **kwargs): # real signature unknown
截断数据,仅保留指定之前数据
pass def writable(self, *args, **kwargs): # real signature unknown
是否可写
pass def write(self, *args, **kwargs): # real signature unknown
写内容
pass def __getstate__(self, *args, **kwargs): # real signature unknown
pass def __init__(self, *args, **kwargs): # real signature unknown
pass @staticmethod # known case of __new__
def __new__(*args, **kwargs): # real signature unknown
""" Create and return a new object. See help(type) for accurate signature. """
pass def __next__(self, *args, **kwargs): # real signature unknown
""" Implement next(self). """
pass def __repr__(self, *args, **kwargs): # real signature unknown
""" Return repr(self). """
pass
读写都会修改指针,关闭文件指针归零。
可以以迭代的方式去取读比较大的文件,(因为读文件要先读到内存,如果直接read,文件过大会撑爆内存)。
f = open("hehe","r")
for i in f:
print(i)
D:\Users\Administrator\AppData\Local\Programs\Python\Python35\python3.exe D:/Users/Administrator/PycharmProjects/txt/123.py
sferf sfsf sfsf sfwsf
循环文件内的每个元素
f = open("hehe","r")
a = f.read()
f.seek(0)
for i in a:
print(i)
s
f
e
r
f
with open的用法
f = open("hehe","r")
with open("hehe","r") as f:
#第二行等同于第一行,区别在于第二行执行完,会自动关闭文件,而第一行则需要f.cloes,with还支持同时打开两个文件。#