[python自学笔记]匿名函数和文件处理、异常

本文介绍了Python中的Lambda表达式及其用法,展示了如何将Lambda表达式作为参数传递给函数。此外,还详细讲解了Python中文件的基本操作,包括文件的打开、读取、写入、关闭等,并解释了不同文件操作模式的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 result

def 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一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值