学习Python的日子 Python(11)

本文详细介绍了Python中的生成器和迭代器概念,包括列表推导式的使用、生成器函数的特点及其调用方式,同时对比了迭代器与可迭代对象的区别,并提供了编码规范建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python
生成器
1.列表推导式
 [x for x in range(5)] --->obj=(x for x in range(5))
  next(obj)
2.函数+yield
def 函数名():
....
yield value   ----> 类似:return value
....
调用函数:
obj=aa()
3. 函数:
   next(obj)
   obj.__next__()
   obj.send(None)  | obj.send(8)
补充:
如果是生成器,则也可以使用for..in 
  生成器:
   协成
  案例: 多任务
迭代器
可迭代对象
集合对象
list  tuple dict str set..
生成器对象
可迭代对象: Iterable
使用isinstance判断是否是可迭代的,注意:from collections import Iterable
迭代器
迭代器: Iterator
next(object)  --->获取下一个值  ---->object就是迭代器
可迭代对象不一定就是一个迭代器
不是一个迭代器 ,如何变成迭代器?
iter()  前提:可迭代对象
总结
凡是可作用于 for 循环的对象都是 Iterable 类型;
凡是可作用于 next() 函数的对象都是 Iterator 类型;
集合数据类型如 list 、 dict 、 str 等是 Iterable 但不是 Iterator ,不过可以通过 iter() 函数获得一个 Iterator 对象
编码规范
1. 函数的参数  


foo = long_function_name(var_one, var_two,
     var_three, var_four)
2. if,while的条件:
  if (this_is_one_thing
         and that_is_another_thing):
3.右括号回退  推荐方案
my_list = [
1, 2, 3,
4, 5, 6,
]
4.Python 3中不允许混合使用Tab和空格缩进
5. 空行
6. 编码:
7. 导入模块在单独行
8. 禁止使用通配符导入
9. 括号里边避免空格
# No
spam( ham[ 1 ], { eggs: 2 } )


# yes
spam( ham[1], { eggs: 2 } )
10. 空格:
  a = b
  a += 1
11. 函数调用的左括号之前不能有空格
12.二元运算符两边放置一个空格
涉及 =、符合操作符 ( += , -=等)、比较( == , < , > , != , <> , <= , >= , in , not in , is , is not )、布尔( and , or , not )。
优先级高的运算符或操作符的前后不建议有空格
13.关键字参数和默认值参数的前后不要加空格
14.通常不推荐复合语句(Compound statements: 多条语句写在同一行)
15.尽管有时可以在if/for/while 的同一行跟一小段代码,但绝不要跟多个子句,并尽量避免换行
16.避免采用的名字


000 = 123
OOO000 = 123
OOO = l1
文本长块,比如文档字符串或注释,行长度应限制为72个字符文本长块
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值