Python中 // 与 / 的区别
Python中 // 与 / 的区别:
- // 返回不大于浮点数的最大整数。6//4=1
- / 返回浮点数。6/4=1.5
生成器
生成器是一个特殊的程序,其可以控制循环的迭代方式,使用 yield 返回值函数,每次调用yield 都会暂停,而使用 next() 和 send() 函数恢复生成器。生成器是迭代器的一种。
总结:
- 生成器是可迭代的,但仅能读取一次,因为其是在用的过程中生成。a = (x*x for x in range(3))。
- 生成器能够迭代是因为包含 next() 函数,其工作原理就是不断调用 next() 函数直至捕获一个 StopIteration 异常。
- 带有 yield 的函数不再是普通的函数,而是一个生成器 generator,用于迭代。
- yeild 就是返回一个值,并记住该返回的位置,其下一次的迭代也是从这里开始。
迭代器
- 凡是可作用于 for 循环的对象都是 Iterable 类型。
- 凡是可作用于 next() 函数的对象都是 Iterator 类型,它们表示一个惰性计算的序列。
- 集合数据类型如 list、dict、str 等是 Iterable 但不是 Iterator,不过可以通过 iter() 函数获得一个 Iterator 对象。