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 :













猜你喜欢

转载自blog.csdn.net/tang12060/article/details/80594793