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

Python程序交替输出范围两端整数时重复值问题修正咨询

修正交替输出范围两端数时的重复打印问题

问题场景

需求:编写Python程序,接收用户输入的数字,交替输出1到该数字之间的正整数(先输出左端,再输出右端,依次向中间靠拢)。例如输入5时,预期输出:

Please type in a number:5
1
5
2
4
3

但现有代码运行时会多输出一个3,实际输出:

Please type in a number:5
1
5
2
4
3
3

问题原因

现有代码的循环条件为index <= num,当处理到奇数的中间值时(如输入5时,index和num同时等于3),循环条件成立,会先后执行print(index)和print(num),导致同一个数被打印两次。

修正方案

方案一:循环内判断两端值是否相等

在打印右端值前,先判断当前index和num是否相等,仅当二者不同时才打印右端值:

num = int(input('Please type in a number:'))
index = 1
while index <= num:
    print(index)
    if index != num:
        print(num)
    index += 1
    num -= 1

方案二:拆分循环与中间值处理

将循环条件改为index < num,仅处理两端值不同的情况,循环结束后单独处理奇数的中间值:

num = int(input('Please type in a number:'))
index = 1
while index < num:
    print(index)
    print(num)
    index += 1
    num -= 1
# 当输入为奇数时,此时index和num相等,打印中间值
if index == num:
    print(index)

两种方案均能解决重复打印的问题,输入5时均可得到符合预期的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:00:00