Python入门6

列表生成式练习掌握

1.给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输
入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
# [2,3,5,7]

输入10   输出2

实现矩阵转置的两种方式

1). 列表生成式

2). 内置函数zip

 *li: 解包
     zip:
           1).打包函数, 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
           2).如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,
           利用 * 号操作符,可以将元组解压为列表
           3). zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip( ) 返回的是一个对象。
           如需展示列表,需手动 list( ) 转换。

字典生成式

1.假设有20个学生,学生分数在60-100之间,筛选出成绩在90分以上的学生

2.将字典的key值和value值调换

大小写计数合并 : key值最终全部为小写

集合生成式

生成器———列表的改写

斐波那契数列(后一个数是前面2个的和)

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

yield: 当函数中包含yield关键字, 返回值是一个生成器, 如果要执行函数内容.需要调用next方法, 或者for循环.
         运行过程: 当执行next方法时, 遇到yield程序停止, 直到执行下一次next方法时,
         从上一次停止的yield处继续执行,遇到yield停止运行.
 return: 遇到return函数执行结束;

生成器: 如果函数中有yield, 那么这个函数的返回值就是一个生成器;

生成器fib( )执行的过程分析:
       执行语句 f = fab(100) 时,并不会马上执行 fib( ) 函数的代码块,而是首先返回一个 iterable 对象(即生成器)!
       在 for 循环语句执行时或者next( ),才会执行 fib( ) 函数的代码块。
       执行到语句 yield b 时,fib( ) 函数会返回一个迭代值,直到下次迭代前,
       程序会回到 yield b 的下一条语句继续执行,然后再次回到 for 循环,如此迭代直到结束。
       看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。

由此可以看出,生成器通过关键字 yield 不断的将迭代器返回到内存进行处理,而不会一次性的将对象全部放入内存, 从而节省内存空间。

生成器———迷你聊天机器人

生成器可以使用的方法:
       - next(g)
       - g.send(''), 给生成器传递值;
               给yield所在位置发送一个数据, 直到遇到下一个yield停止.

yield实现python3中的range

猜你喜欢

转载自blog.csdn.net/qq_42725815/article/details/81750506