day6-内置函数和文件操作
isinstance() 判断对象是否所属某类
-----------------函数参数的传递引用-----------

python函数中传参,传的是引用
在其他语言中要则有两种方式:1.传引用 2.重新创建一个内存空间
1.lambda表达式
def f(a,b):
return a+b
等同于 f=lambda a,b:a+b
2.内置函数
def abs(*args, **kwargs):绝对值
def all(*args, **kwargs):循环参数,如果每个元素都为真,那all放回值为真
#假:0、None、" "、[] 、()、{ }
def any(*args, **kwargs):循环参数,只有一个为真,则为真
def ascii(*args, **kwargs):对象的类中找_repr_,获取其返回值
或
repr()
实例: class Foo:
def __repr__(self):
return "hello"
obj = Foo()
r =ascii(obj)
print(r)
结果:hello
def bin(*args, **kwargs):二进制
def oct(*args, **kwargs):八进制
def int(*args, **kwargs):十进制
def hex(*args, **kwargs):十六进制
bool() 判断真假,把一个对象转换为布尔值
bytes() 字节
bytearray() 字节列表[]
转换:bytes("sas",encoding="utf-8")
chr() 找到参数相应的ASCII码
实例:c=chr(65)
print(c)
结果:A
ord() 找到ASCII码相应的参数值
实例:c=chr(A)
print(c)
结果:65
def callable(i_e_, some_kind_of_function) 参数可被执行
compile():python识别文件是当作一段字符串,此函数重新识别为python语言
dir():快速识别函数提供的功能
eg:li=[] dir(li) 或 help(list)
def divmod(x, y) 一般用于页面的数据分配
实例:a=10/3
print(a)
r=divmod(10,3)
print(r)
结果:3.3333333333333335
(3, 1)
def eval(*args, **kwargs):一般用于excel表的计算,不支持for 支持简单的表达式
实例: a="1+3"
print(a)
ret=eval("1+3")
print(ret)
ret=eval("a+3",{"a":1})
print(ret)
结果: 1+3
4
4
def exec(*args, **kwargs)
实例: 支持复杂的代码
exec("for i in range(3):print(i)")
结果:
0 1 2
#comple 编译
#eval 表达式,返回值
#exec 执行py代码
filter(函数,可迭代的对象) #循环可迭代的对象,获取每一个参数,函数(参数)
实例: def f(x):
if x > 22:
return True
else:
return False
ret = filter(f, [11, 22, 55, 66, 33])
for i in ret:
print(i)
结果: 33 55 66
或
ret=filter(lambda x:x>22,[11,22,33,44])
filter(函数,可迭代的对象)
实例: def f(x):
return x +=100
ret=map(f,[1,2,3,4,5])
print(ret)
for i in ret:
print(i)
结果:101 102 103 104 105
globals() 获取当前的全局变量
locals() 获取当前的局部变量
hash() 转换为哈希值
isinstance() 判断某个对象是否是某个类创建
def pow(*args, **kwargs) 求其的指数值
实例: i=pow(2,5)
print(i)
结果: 32
reversed() 列表,字典的翻转
round() 对数字的四舍五入
sum() 求和
zip() 迭代
实例:
li1=[11,22,33,44]
li2={"a","b","c","d"}
r=zip(li1,li2)
for i in r:
print(i)
结果:(11, 'b')
(22, 'a')
(33, 'd')
(44, 'c')
map()函数的一个相识例子:
li = [11, 22, 33, 44]
def x(arg):
return arg + 100
def mymap(fun, arg):
result = []
for i in arg:
ret = fun(i)
result.append(ret)
return result
r=mymap(x,li)
print(r)
3.排序
sorted() 排序 从小到大(同基本类型)
字符串排序(数字,字母(ASCII码排序),中文)
4.文件操作
1.打开文件: open(文件名,模式,编码)
模式:
r ,只读模式【默认】
w,只写模式【不可读;不存在则创建;存在则清空内容;】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【不可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
r+, 读写【可读,可写】
w+,写读【可读,可写】
x+ ,写读【可读,可写】
a+, 写读【可读,可写】
"b"表示以字节的方式操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
#普通打开
python内部将字节转换成字符串 10101 ==>python解析器===》程序员
# 二进制打开方式
b 010101 ====》 程序员
实例:
f=open("ha.log","rb")
data=f.read()
f.close()
str_data=str(data,encoding="utf-8")
print(data)
print(str_data)
结果:b'\xe4\xb8\xad\xe5\x9b\xbd'
中国
2.内置函数:
def read(self, size=-1):读取文件内容,以字节或字符的形式
def close(self): 关闭文件
def write(self, *args, **kwargs):写
def flush(self, *args, **kwargs) :刷新文件内部缓冲区
def next(self) :获取下一行数据,不存在,则报错
def seek(self, *args, **kwargs):指定文件中指针的位置
def tell(self, *args, **kwargs):获取指针的位置
def truncate(self, *args, **kwargs) :截断数据,仅保留指定之前数据 》依赖于指针
实例: f=open("ha.log","r+",encoding="utf-8") ha.log:123456
f.seek(0)
f.truncate(5)
f.close()
结果:12345
for line in f 的循环可以行的形式读取
3.关闭文件:
with open("ha.log","r",encoding="utf-8") as f :
f.read()
2.7以后:可同时打开两个文件
with open("ha.log","r",encoding="utf-8") as f,open("ha.log","r",encoding="utf-8") as f :
-----------------函数参数的传递引用-----------
python函数中传参,传的是引用
在其他语言中要则有两种方式:1.传引用 2.重新创建一个内存空间
1.lambda表达式
def f(a,b):
return a+b
等同于 f=lambda a,b:a+b
2.内置函数
def abs(*args, **kwargs):绝对值
def all(*args, **kwargs):循环参数,如果每个元素都为真,那all放回值为真
#假:0、None、" "、[] 、()、{ }
def any(*args, **kwargs):循环参数,只有一个为真,则为真
def ascii(*args, **kwargs):对象的类中找_repr_,获取其返回值
或
repr()
实例: class Foo:
def __repr__(self):
return "hello"
obj = Foo()
r =ascii(obj)
print(r)
结果:hello
def bin(*args, **kwargs):二进制
def oct(*args, **kwargs):八进制
def int(*args, **kwargs):十进制
def hex(*args, **kwargs):十六进制
bool() 判断真假,把一个对象转换为布尔值
bytes() 字节
bytearray() 字节列表[]
转换:bytes("sas",encoding="utf-8")
chr() 找到参数相应的ASCII码
实例:c=chr(65)
print(c)
结果:A
ord() 找到ASCII码相应的参数值
实例:c=chr(A)
print(c)
结果:65
def callable(i_e_, some_kind_of_function) 参数可被执行
compile():python识别文件是当作一段字符串,此函数重新识别为python语言
dir():快速识别函数提供的功能
eg:li=[] dir(li) 或 help(list)
def divmod(x, y) 一般用于页面的数据分配
实例:a=10/3
print(a)
r=divmod(10,3)
print(r)
结果:3.3333333333333335
(3, 1)
def eval(*args, **kwargs):一般用于excel表的计算,不支持for 支持简单的表达式
实例: a="1+3"
print(a)
ret=eval("1+3")
print(ret)
ret=eval("a+3",{"a":1})
print(ret)
结果: 1+3
4
4
def exec(*args, **kwargs)
实例: 支持复杂的代码
exec("for i in range(3):print(i)")
结果:
0 1 2
#comple 编译
#eval 表达式,返回值
#exec 执行py代码
filter(函数,可迭代的对象) #循环可迭代的对象,获取每一个参数,函数(参数)
实例: def f(x):
if x > 22:
return True
else:
return False
ret = filter(f, [11, 22, 55, 66, 33])
for i in ret:
print(i)
结果: 33 55 66
或
ret=filter(lambda x:x>22,[11,22,33,44])
filter(函数,可迭代的对象)
实例: def f(x):
return x +=100
ret=map(f,[1,2,3,4,5])
print(ret)
for i in ret:
print(i)
结果:101 102 103 104 105
globals() 获取当前的全局变量
locals() 获取当前的局部变量
hash() 转换为哈希值
isinstance() 判断某个对象是否是某个类创建
def pow(*args, **kwargs) 求其的指数值
实例: i=pow(2,5)
print(i)
结果: 32
reversed() 列表,字典的翻转
round() 对数字的四舍五入
sum() 求和
zip() 迭代
实例:
li1=[11,22,33,44]
li2={"a","b","c","d"}
r=zip(li1,li2)
for i in r:
print(i)
结果:(11, 'b')
(22, 'a')
(33, 'd')
(44, 'c')
map()函数的一个相识例子:
li = [11, 22, 33, 44]
def x(arg):
return arg + 100
def mymap(fun, arg):
result = []
for i in arg:
ret = fun(i)
result.append(ret)
return result
r=mymap(x,li)
print(r)
3.排序
sorted() 排序 从小到大(同基本类型)
字符串排序(数字,字母(ASCII码排序),中文)
4.文件操作
1.打开文件: open(文件名,模式,编码)
模式:
r ,只读模式【默认】
w,只写模式【不可读;不存在则创建;存在则清空内容;】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【不可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
r+, 读写【可读,可写】
w+,写读【可读,可写】
x+ ,写读【可读,可写】
a+, 写读【可读,可写】
"b"表示以字节的方式操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
#普通打开
python内部将字节转换成字符串 10101 ==>python解析器===》程序员
# 二进制打开方式
b 010101 ====》 程序员
实例:
f=open("ha.log","rb")
data=f.read()
f.close()
str_data=str(data,encoding="utf-8")
print(data)
print(str_data)
结果:b'\xe4\xb8\xad\xe5\x9b\xbd'
中国
2.内置函数:
def read(self, size=-1):读取文件内容,以字节或字符的形式
def close(self): 关闭文件
def write(self, *args, **kwargs):写
def flush(self, *args, **kwargs) :刷新文件内部缓冲区
def next(self) :获取下一行数据,不存在,则报错
def seek(self, *args, **kwargs):指定文件中指针的位置
def tell(self, *args, **kwargs):获取指针的位置
def truncate(self, *args, **kwargs) :截断数据,仅保留指定之前数据 》依赖于指针
实例: f=open("ha.log","r+",encoding="utf-8") ha.log:123456
f.seek(0)
f.truncate(5)
f.close()
结果:12345
for line in f 的循环可以行的形式读取
3.关闭文件:
with open("ha.log","r",encoding="utf-8") as f :
f.read()
2.7以后:可同时打开两个文件
with open("ha.log","r",encoding="utf-8") as f,open("ha.log","r",encoding="utf-8") as f :