You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数中循环仅返回首个值,如何获取1-99的完整循环结果?

你的问题出在get_id函数里的return i写在了for循环内部——第一次循环到i=1时就触发了return,函数直接终止,自然只返回1。要返回1到99的所有值,有两种常用的修改方式:

方式1:用生成器(yield)逐个返回值

把return换成yield,让函数变成生成器,这样每次迭代都会生成一个值,不会直接终止函数。调用的时候遍历生成器,把每个值传给get_id_mysql:

def get_id():
    for i in range(1, 100):
        yield i

def get_id_mysql(x):
    print(x)

# 遍历生成器的每个元素,逐个传递
for variable in get_id():
    get_id_mysql(variable)

方式2:返回完整列表

如果需要一次性拿到所有值,可以先把1-99存入列表,循环结束后再return整个列表,之后遍历列表传递每个元素:

def get_id():
    id_list = []
    for i in range(1, 100):
        id_list.append(i)
    return id_list

def get_id_mysql(x):
    print(x)

variable_list = get_id()
for variable in variable_list:
    get_id_mysql(variable)

两种方式的区别:生成器是惰性求值,每次只生成一个值,适合处理大数据量;返回列表会一次性把所有值存入内存,小数据量用起来更直接。

内容的提问来源于stack exchange,提问作者CaptainPy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:05:17