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

Python中while循环数据无法append到列表的问题求助

问题分析与解决

核心问题

你代码里的substitution = print(...)是错误的——print()函数执行后返回值固定为None,所以每次往nth列表里添加的都是None。另外你仅替换了字符串中的i,没有计算表达式的实际数值,自然得不到预期的数字列表。

修正后的代码

structure = input("Equation: ")
print("RANGE")
upper_lim = int(input("Upper limit: "))
value_i = int(input("The value of 'i': "))
nth = []  # 初始化为空列表,无需默认空字符串

while value_i <= upper_lim and "i" in structure:
    # 替换i为当前数值,生成可计算的表达式字符串
    expr_str = structure.replace("i", str(value_i))
    # 计算表达式的数值结果
    calc_result = eval(expr_str)
    # 打印替换后的表达式及结果(可选,按需保留)
    print(f"{expr_str} = {calc_result}")
    # 将计算结果添加到列表
    nth.append(calc_result)
    value_i += 1 

print(nth)

关键说明

  • 合并了原代码中冗余的两个while循环,统一逻辑判断
  • 使用eval()执行替换后的表达式字符串,得到实际数值结果
  • 初始化nth为空列表,避免初始空字符串干扰最终结果

示例运行效果

假设输入:

Equation: 3*i - 1
RANGE
Upper limit: 4
The value of 'i': 1

输出:

3*1 - 1 = 2
3*2 - 1 = 5
3*3 - 1 = 8
3*4 - 1 = 11
[2, 5, 8, 11]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:45:00