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

Python中如何用while循环逆序打印数组?代码仅输出13求修正

问题排查与修正:不使用reverse()逆序打印数组

你的代码只输出13,主要有两个核心错误:

  • 循环逻辑完全搞反:你初始化i为数组最后一个索引(6),但循环条件是i < len(arr)(7),还让i递增,这会导致循环很快结束;正确的逆序遍历应该是从后往前,用i >= 0作为循环条件,每次让i递减。
  • return语句位置错误:你把return(arr)放在了while循环内部,第一次循环执行完就直接返回函数了,所以只打印了第一个元素13就终止了。

另外,你的函数名是oddNumberReverse,但原数组全是奇数,所以奇数判断的条件可以保留;如果后续需要逆序打印所有元素,直接去掉if判断即可。

修正后的代码:

arr = [1, 3, 5, 7, 9, 11, 13]

def reversePrint(arr):
    i = len(arr) - 1
    # 从最后一个元素往前遍历,直到索引0
    while i >= 0:
        # 保留奇数判断(如果需要打印所有元素可直接删除这行if)
        if arr[i] % 2 == 1:
            print(arr[i])
        i -= 1
    # 不需要返回数组的话可以去掉这行return
    return arr

reversePrint(arr)

运行后会输出完整逆序:

13
11
9
7
5
3
1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:17:11