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

Python遍历问题:如何实现1到偶数n步长2再返回1的正确输出?

问题分析与解决方案

为什么从1开始步长2到不了偶数n?

Python的range(start, stop, step)是左闭右开区间,即包含起始值但不包含终止值。另外,步长为2时,从奇数1开始累加,得到的永远是奇数,而n是偶数,所以无论怎么递推都不可能等于偶数n,自然无法到达。

现有代码的问题

  • 第一个循环range(1, n, 2):因为n是偶数,循环会遍历1、3……直到小于n的最大奇数(即n-1),直接漏掉了n。
  • 第二个循环range(n, 1, -2):这个区间包含n但不包含1,所以会遍历n、n-2……直到2,漏掉了1。

实现需求的代码

要实现「1到n(步长2,最后包含n),再从n回到1」的效果,需要单独处理偶数n,同时确保返回时包含1:

n = int(input("请输入偶数n: "))

# 第一部分:1到n,步长2(最后包含n)
for x in range(1, n, 2):
    print(x, end=' ')
print(n, end=' ')  # 单独输出偶数n
print()

# 第二部分:从n回到1
print(n, end=' ')  # 先输出n
for x in range(n-1, 0, -2):
    print(x, end=' ')
print()

测试示例

  • 输入n=12时,输出:
    1 3 5 7 9 12 
    12 9 7 5 3 1 
    
  • 输入n=20时,输出:
    1 3 5 7 9 11 13 15 17 19 20 
    20 19 17 15 13 11 9 7 5 3 1 
    

内容的提问来源于stack exchange,提问作者Mr. Green

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:15:45