17days

1.python的匿名函数

   匿名函数是指没有名字的函数。

语法格式:
	lambda 形参:返回值
   
res = lambda x:x**2
ret=res(2)//4

print((lambda a:a+1)(3))//4
 

 2.常见的内置函数

2.1 map函数

 map()会根据提供的函数对指定序列做映射。

  第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。

  语法

  map()函数语法:

        map(function,iterable,...)

def index(x):
    return   x**2

res=map(index,ll)
print(list(res))

2.2 zip函数

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列

2.3 max和 mid 函数

l1= [1, 2, 3, 4, 5, 6]
l2 = ['a', 'AA', 'B','bb']
print(max(l1)) #6
print(min(l2)) #AA

3.可迭代对象和迭代器对象

迭代是 python 中访问集合元素的一种非常强大的一种方式。迭代器是一个可以记住遍历位置的对象,因此不会像列表那样一次性全部生成,而是可以等到用的时候才生成,因此节省了大量的内存资源。迭代器对象从集合中的第一个元素开始访问,直到所有的元素被访问完。迭代器有两个方法:iter()和 next()方法。

这么解释可能不太直观,我们以生活的一个小栗子来解释一下,方便大家能够更深刻的理解。比如说我们去超市买水果,而正巧超市的服务人员正在摆放苹果。服务人员告诉我们需要等苹果都摆放完毕我们才可以拿苹果,这样就很耽误我们的时间。(这个场景中,柜台上其实已经有苹果了,只不过销售不让拿罢了。)

然后我们再去卖橘子的柜台,服务人员也在摆放橘子。但是服务人员告诉我们可以不用等他摆放完毕,我们可以直接拿橘子,这样就会很好的节省我们的时间。如果我们拿橘子的速度超过了服务人员摆放的速度 ,我们只需要等待服务人员摆放之后就可以直接拿橘子,大大的提升了我们买橘子的效率。

而迭代器就类似于我们买橘子的场景,我们平时的程序都是一次性写入到内存中。比如我们的列表中存在成百上千的数据,都是一次性写入到内存里的,通过这样让我们来使用。但是迭代器却是按需加载,有一点内容就会放在内容里面,我们就可以立刻使用内存中的数据进行我们的逻辑处理。这样就不要所有的数据都写入到内存中就可以使用,大大的提升了使用效率。

可迭代对象(Iterable)。从语法形式上讲,内置有__iter__方法的对象都是可迭代对象,字符串、列表、元组、字典、集合、打开的文件都是可迭代对象:
 

{'name':'egon'}.__iter__
{7,8,9}.__iter__
……

 调用obj.iter()方法返回的结果就是一个迭代器对象(Iterator)。迭代器对象是内置有iternext方法的对象,打开的文件本身就是一个迭代器对象,执行迭代器对象.iter()方法得到的仍然是迭代器本身,而执行迭代器.next()方法就会计算出迭代器中的下一个值。 迭代器是Python提供的一种统一的、不依赖于索引的迭代取值方式,只要存在多个“值”,无论序列类型还是非序列类型都可以按照迭代器的方式取值

>>> s={1,2,3} # 可迭代对象s
>>> i=iter(s)  # 本质就是在调用s.__iter__(),返回s的迭代器对象i,
>>> next(i) # 本质就是在调用i.__next__()
1
>>> next(i)
2
>>> next(i)
3
>>> next(i)  #抛出StopIteration的异常,代表无值可取,迭代结束

4.for循环原理

for循环又称为迭代循环,in后可以跟任意可迭代对象

goods=['mac','lenovo','acer','dell','sony']
for item in goods:   
    print(item)

 for 循环在工作时,首先会调用可迭代对象goods内置的iter方法拿到一个迭代器对象,然后再调用该迭代器对象的next方法将取到的值赋给item,执行循环体完成一次循环,周而复始,直到捕捉StopIteration异常,结束迭代。

 5.捕捉异常

异常捕获的方法

1. try-except语句

try-except语句是Python捕获异常的最基本方法。其语法格式如下:

```

try:

# 可能会出现异常的代码

except Exception1:

# 如果发生Exception1异常,执行此代码块

except Exception2:

# 如果发生Exception2异常,执行此代码块

finally:

# 不管有没有发生异常,都会执行此代码块

```

在这个语句中,try块中放置可能会出现异常的代码,如果try块中的代码发生异常,就会跳到对应的except块中执行。如果try块中的代码没有发生异常,则except块中的代码不会执行。finally块中的代码不管有没有发生异常,都会执行。

2. try-except-else语句

除了try-except语句,Python还提供了try-except-else语句。其语法格式如下:

```

try:

# 可能会出现异常的代码

except Exception1:

# 如果发生Exception1异常,执行此代码块

except Exception2:

# 如果发生Exception2异常,执行此代码块

else:

# 如果try块中的代码没有发生异常,执行此代码块

finally:

# 不管有没有发生异常,都会执行此代码块

```

在这个语句中,else块中的代码只有当try块中的代码没有发生异常时才会执行,如果try块中的代码发生异常就不会执行else块中的代码。

3. try-except-finally语句

除了try-except-else语句,Python还提供了try-except-finally语句。其语法格式如下:

```

try:

# 可能会出现异常的代码

except Exception1:

# 如果发生Exception1异常,执行此代码块

except Exception2:

# 如果发生Exception2异常,执行此代码块

finally:

# 不管有没有发生异常,都会执行此代码块

```

在这个语句中,finally块中的代码不管有没有发生异常,都会执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值