生成器是迭代器的一种。与解析式的不同是惰性计算、延迟计算
(返回值 for 元素 in 可迭代对象 if 条件)
var = ("{:x<4}".format(i) for i in range(10) ) print(var) print(next(var))
运行结果
<generator object <genexpr> at 0x000001A1C2310F10> 0xxx
for x in var: print(x)
运行结果
1xxx
2xxx
3xxx
4xxx
5xxx
6xxx
7xxx
8xxx
9xxx
var = ("{:x<4}".format(i) for i in range(10) ) print(var) print(next(var)) for x in var: print(x) print(‘---------------‘) for x in var: print(x)
运行结果
<generator object <genexpr> at 0x000001BA6EA30F10> 0xxx 1xxx 2xxx 3xxx 4xxx 5xxx 6xxx 7xxx 8xxx 9xxx ---------------
num=(print(‘{}‘.format(i+1)) for i in range(3)) num1=next(num) num2=next(num) sum_num=num1+num2 print(sum_num)
运行结果
1 2 Traceback (most recent call last): File "C:/Users/ASUS-PC/PycharmProjects/zhanghao/复习/生成器.py", line 13, in <module> sum_num=num1+num2 TypeError: unsupported operand type(s) for +: ‘NoneType‘ and ‘NoneType‘
产生上面结果是因为:print函数的返回值是None,所以加不了
原文:https://www.cnblogs.com/zh-dream/p/13733330.html