我有以下问题解决问题
[请使用生成器编写程序以打印偶数0和n之间以逗号分隔的形式,而n由控制台输入。
示例:如果以下n作为程序输入:10然后,程序的输出应为:0,2,4,6,8,10。
下面是我的答案
n=int(input("enter the number of even numbers needed:"))
eve=''
st=(lambda x:(for i in range(0,x))[(str(i)) if i%2==0 else (",")])(n)
但是,我对具有lambda的第三行有问题
n=int(input("enter the number of even numbers needed: "))
def sample(x):
for i in range(x+1):
if i%2==0:
yield i
for i in sample(n):
if i!=n:
print(i,end=", ")
else:
print(str(i)+".")
我为您做了作业:
>>> fn = lambda x: (f"{i}," for i in range(0, x))
>>> ''.join(list(fn(10)))
'0,1,2,3,4,5,6,7,8,9,'
>>>
>>> fn(10)
<generator object <lambda>.<locals>.<genexpr> at 0x107f67660>