python - 如何让我的生成器无限调用函数
问题描述
我是生成器的新手,我正在尝试使下面的代码工作,我的生成器应该向我的函数发送一个随机数并检查它是否与目标匹配并返回计数以进行匹配,当我运行代码时只是停止迭代,我哪里出错了?
def generator(min_val: int, max_val: int) -> Iterator[int]:
yield random.randint(min_val,max_val)
def find_target(target: int, min_val: int=0, max_val: int=10, max_attempts: int=100):
i=1
cnt=1
g = generator(0,10)
while i<100:
a = next(g)
if g==target:
return cnt
else:
cnt+=1
i+=1
if i >=100:
return None
解决方案
如果您希望您的生成器是无限的,请编写一个无限循环。最简单的可能是:
def generator(min_val: int, max_val: int) -> Iterator[int]:
while True:
yield random.randint(min_val,max_val)
推荐阅读
- java - 如何在 java 中模拟 InputStream getResourceAsStream?
- session-cookies - 使用 InAppBrowser 插件进行 SSO 登录后,它在返回应用程序时不会保留 cookie,因此无法重新加载 ios 应用程序
- android - 使用 Retrofit Android 对多个 API 进行常见成功/失败/错误处理的良好设计
- paypal-sandbox - 有没有办法在 Sandbox Paypal 中设置默认手机号码?
- classification - 进行监督学习,其中输出应该是加到 1 的概率
- amazon-web-services - AWS ECS 任务定义中环境变量的端口映射
- php - 如何在删除孩子之前将父母与孩子分离?(Laravel 雄辩)
- reactjs - 测试回调函数 jest react
- javascript - 单击时未触发onclick
- perl - 如何使用perl从句子中删除日期和时间时间戳