Python--学习笔记1

  • 区分大小写
  • Raise() 抛出异常
    当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。

    来自 <https://www.cnblogs.com/ggzhangxiaochao/p/9002847.html>

  • Python smtp和email模块
    https://www.cnblogs.com/zhangxinqi/p/9113859.html

  • 定义字符串,单引号双引号没有区别,但是必须成对出现

匿名函数lambda(参考https://www.cnblogs.com/hf8051/p/8085424.html)

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

通常是直接使用lambda函数。如下所示:

add = lambda x, y : x+y
add(1,2)  # 结果为3

同时,lambda函数可作为参数传递给其他函数。例如,sorted函数。此时lambda函数用于指定对列表中所有元素进行排序的准则。例如sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序,其结果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。


 

使用上下文管理关键字with方法

s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n'
with open('sample.txt', 'a+') as f:
    f.write(s)
with open('sample.txt','r') as src, open('sample_new.txt', 'w') as dst:
    dst.write(src.read())
with open('sample_new.txt', 'r') as fp:
    for line in fp:
        print(line)
Hello world

文本文件的读取方法

文本文件的写入方法

Hello world

文本文件的读取方法

文本文件的写入方法

 

参考资料:
pickle模块的使用讲解: http://blog.csdn.net/coffee_cream/article/details/51754484

迭代器

可以直接作用于for循环的数据类型有以下几种:

一类是集合数据类型,如listtupledictsetstr等;

一类是generator,包括生成器和带yield的generator function。

 

生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。

生成器都是Iterator对象,但listdictstr虽然是Iterable,却不是Iterator

listdictstrIterable变成Iterator可以使用iter()函数:

 

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable

小结

凡是可作用于for循环的对象都是Iterable类型;

凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

集合数据类型如listdictstr等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

 

列表生成式,生成器和迭代器的知识点
https://www.cnblogs.com/wj-1314/p/8490822.html

posted on 2018-12-18 17:14  椰汁黑糯米  阅读(136)  评论(0编辑  收藏  举报

导航