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

Python循环打印递增字母模式时列表索引越界问题求助

问题诊断与修正方案

核心错误点

  • 第一处低级错误:重置k的语句误用了比较运算符==,而非赋值运算符=。你写的k ==0仅会判断k是否等于0,不会对k的数值做任何修改,所以k会一直递增,最终超过字母列表的最大下标25,触发越界错误。
  • 第二处逻辑顺序可优化:你当前的执行顺序是「访问列表元素→k自增→判断重置」,如果后续调整字母列表长度,临界值下仍可能触发越界,建议将重置判断放到访问列表元素之前,保证下标始终合法。

修正后可运行代码

最简修复(仅改运算符)

x = int(input("How much rows you want to print:\n"))
letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
k= 0
for row in range(x):
    for col in range(row+1):
        print(letter[k],end=" ")
        k+=1
        if k==len(letter):
            k = 0 # 将比较运算符改为赋值运算符即可
    print()

鲁棒性优化版本(调整逻辑顺序)

x = int(input("How much rows you want to print:\n"))
letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
letter_len = len(letter)
k = 0
for row in range(x):
    for col in range(row+1):
        # 访问元素前先做越界判断,适配任意长度的字母列表
        if k >= letter_len:
            k = 0
        print(letter[k], end=" ")
        k += 1
    print()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:39:04