Python学习笔记(3)

目录

1.断言

2.with ... as ...

3.字符串方法

4. lambda函数


1.断言

assert {condition} ,  {message} 

condition结果为False时,会抛出异常,message为异常消息

>>> assert 2 > 1, '不对'
>>>
>>>
>>> assert 2 > 3, '不对'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: 不对

2.with ... as ...

上下文管理器:
同时包含__enter__()和__exit__()方法
        __enter__(self):进入上下文管理器自动调用,该方法会在with as代码块执行之前执行。如果with语句有as子句,那么该方法的返回值会被赋值给as后的变量;该方法可以返回多个值,因此在as子句后面也可以指定多个变量,由"()"括起来组成元组。
        __exit__(self, exc_type,exc_value, exc_traceback):退出上下文管理器自动调用。该方法会在with as 代码块执行之后执行。如果with as代码块成功执行结束,程序自动调用该方法,调用该方法的三个参数都为None。如果with as代码块因为异常而中止,程序也自动调用该方法,使用sys.exc_info得到的异常信息将作为调用该方法的参数。

使用:执行完后自动会关闭文件

with open('/Users/michael/test.jpg', 'rb') as f:
    f.read()

 自定义上下文管理器,实现一个范围耗时统计类:

import time
class TimeSpan:
    def __init__(self):
        self.start = None
    def __enter__(self):
        self.end = None
        self.start = time.time()
        print('enter')
        
    def __exit__(self, exc_type, exc_value, exc_traceback):
        self.end = time.time()
        print("exit  消耗时间:%s" % (self.end - self.start ))
        
with TimeSpan() as t:
    print('exec begin')
    for i in range(1000):
        i += 1
        if i == 999:
          print("exec end")


-------------------------------
enter
exec begin
exec end
exit  消耗时间:0.0005316734313964844

3.字符串方法

s.strip(rm) 删除s字符串开头和末尾的rm字符

s.lstrip(rm) 删除s字符串开头的rm字符

s.rstrip(rm)删除s字符串末尾的rm字符

rm不传默认删 空格,换行符\n ,制表符\t

s.split(str="", num=分隔次数).

str–分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等

num–分割次数,默认为-1,即分隔所有。 

4. lambda函数

lambda即匿名函数

>>> total = lambda x,y : x + y
>>>
>>> total(2,3)
5

Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce

>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>> print(list(filter(lambda x: x % 3 ==0 ,foo)))
[18, 9, 24, 12, 27]

>>> print(list(map(lambda x: x + 3, foo)))
[5, 21, 12, 25, 20, 27, 11, 15, 30]

>>> from functools import reduce
>>> reduce(lambda x,y : x + y, foo)
139

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值