python基础(3) 匿名函数和文件处理、异常

来源:互联网 发布:淘宝网计生用品 编辑:程序博客网 时间:2024/05/15 02:55

1、lambda表达式就是一个匿名函数,在python中的lambda表达式的写法就是lambda+空格+参数列表+冒号+返回值。比如lambda x,y:x+y就相当于如下的代码

def sum(x,y):    return x + y

2、在python的函数中还可以把匿名函数作为参数来使用,这个和JavaScript有异曲同工之妙,比如

def test(a,b,func):    result = func(a,b)    return resultdef main1():    nums = [{"name":"zhangs","age":20},{"name":"wzhangs","age":30},{"name":"2zhangs","age":2}]    nums.sort(key=lambda x:x['age'])    print(nums)def main():    nums = test(10,20,lambda x,y:x+y)    print(nums)if __name__ == '__main__':    main()

3、文件处理
  首先说几个英文,read(读)、write(写),bit(二进制),append (追加)
  3.1、文件的打开:f = open(filename,type)
  filename是文件路径,type是打开方式,”r”,”w”,”a”,”rb”,”wb”,”ab”,”r+”,”w+”等等,r代表读,且文件指针指向开头,并且文件必须存在,不存在就会报异常,w代表写,文件指针指向开头,文件不存在的话会创建一个,a代表文件指针指向最后追加内容。带加号的代表可读可写。
  3.2、文件的关闭:f.close()
  3.3、文件的读写:

f = open("test.py","r")t1 = f.read(2)//读两个t2 = f.read(3)//从上面读两个的基础上再读3个t2 = f.readline() //读一行t3 = f.read() //从上面的基础上把所有的都读出来
f = open("test.py","w")num = f.write("hello\nworld") // 向文件写一个字符串,并把长度返回

  3.4、改变文件的文件指针

filename = "d:/demo.py"type = "r"f = open(filename,type)f.seek(2,0) // 第二个参数为0代表文件开头,1代表当前位置,2代表文件结尾 第一个参数代表偏移量,正数是往右,负数反之,但是python3不支持负数content = f.readline()print(content)position = f.tell() // 返回文件指针的位置print(postion)

  3.5、其它文件操作,需要import os

rename(oldname,newname) //重命名remove(filename) //删除文件mkdir(dirName) //创建文件夹rmdir(dirName) //删除文件夹getcwd() //获取当前工作目录chdir(dirName) //改变当前目录,以下所有代码的当前目录就是这个目录了listdir('./') //返回目录列表

4、异常 (在Java叫Exception,java的处理方式是try…catch…finally,python是try…except…finally)
  比如说只读打开一个文件,文件不存在,会报FileNotFoundError异常,为了捕捉异常,应该采取下面的写法
  

try:    filename = "d:/demo.py"    type = "r"    f = open(filename,type)except FileNotFoundError as fnfr:    print("文件不存在")finally:    print("hello")

  抛出异常的关键字是raise,在java中是throw。Exception是所有异常的类的父类,这个和Java一样。

原创粉丝点击