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

Python新手如何实现带下角标An、Bn的递推序列循环计算

递推序列An、Bn的Python实现思路与修正代码

原有代码的问题汇总

  • 语法错误:3行input语句末尾都缺少闭合的右括号),运行会直接报错
  • 逻辑错误:Python没有自带a(n)这种带下标变量的语法,你写的a(n-1)会被识别为调用名为a的函数,未定义函数自然无法运行

实现方案

根据你的需求可以选择两种实现方式,你写的递推逻辑每一步只依赖前1项的结果,不需要额外实现复杂的下标映射逻辑:

场景1:只需要获取第N项的最终结果

如果不需要保留所有中间项的取值,直接用两个变量滚动存储上一步的结果即可,内存占用最低:

# 修正输入语法,补充闭合括号
a0 = int(input('enter a value:'))
b0 = int(input('enter b value:'))
N = int(input('enter N value:'))

# 初始化上一步的取值为初始值a0、b0
a_prev = a0
b_prev = b0

for _ in range(N):
    # 基于上一步的值计算当前项
    a_curr = a_prev + 10
    b_curr = b_prev * 10
    # 更新上一步的值为当前值,供下一轮循环使用
    a_prev, b_prev = a_curr, b_curr

# 循环结束后a_prev、b_prev就是第N项的An、Bn
print(a_prev, b_prev)

场景2:需要保留所有中间项的取值

如果需要用到n=0到n=N所有项的取值,方便后续查询任意n的结果,就用列表存储所有历史值:

a0 = int(input('enter a value:'))
b0 = int(input('enter b value:'))
N = int(input('enter N value:'))

# 初始化列表,第一个元素就是n=0的初始值
a_list = [a0]
b_list = [b0]

for n in range(1, N+1):
    # 取列表最后一个元素就是前一项的结果
    a_curr = a_list[-1] + 10
    b_curr = b_list[-1] * 10
    a_list.append(a_curr)
    b_list.append(b_curr)

# 要取第n项的话直接用a_list[n]、b_list[n]即可,比如取n=N的结果:
print(a_list[N], b_list[N])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:06:04