【发布时间】:2022-01-06 15:56:29
【问题描述】:
def gen_secs():
x = 0
while x < 60:
yield x
x += 1
def gen_minutes():
x = 0
while x < 60:
yield x
x += 1
def gen_hours():
x = 0
while x < 24:
yield x
x += 1
def gen_time():
for x in gen_hours():
for y in gen_minutes():
for z in gen_secs():
yield ("%d:%d:%d" (x, y, z))
for gt in gen_time():
print(gt)
if gt == "01:23:45":
break
函数 gen_time 无法返回某些字符串参数 原因。存在语法问题,我找不到问题。
【问题讨论】:
-
表达式:
"%d:%d:%d" (x, y, z)尝试使用参数(x, y, z)调用字符串"%d:%d:%d"。但是str对象是不可调用的。请在未来尝试创建minimal reproducible example。这段代码大部分是完全不相关的。 -
yield ("%d:%d:%d" (x, y, z))你忘记了格式字符串和参数之间的%。 -
感谢约翰·戈登
标签: python function generator yield