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

Python程序输出重复问题:次数与gen_coms数组长度一致

问题根源分析

你的输出重复问题完全是因为genTerm()函数里的for循环逻辑错误——你遍历了gen_coms数组的每一个元素,每一次循环都会执行一次判断和打印操作,所以数组有3个元素,就会打印3次结果。

看一下你的代码片段:

def genTerm():
    while True:
        gin = raw_input('> ')
        for commands in gen_coms:  # 这里遍历了gen_coms的所有元素,循环次数等于数组长度
            if gin in gen_coms:
                print gin
            else:
                print('Unrecognized command!')

当你输入a时,这个for循环会跑3次:每次都检查a是否在gen_coms里(结果是True),所以每次都打印a,最终就输出了3次。

修复方案

你根本不需要这个for循环!直接去掉循环,只做一次判断就够了:

def genTerm():
    while True:
        gin = raw_input('> ')
        if gin in gen_coms:
            print gin
        else:
            print('Unrecognized command!')

这样不管gen_coms有多少个元素,只会执行一次判断和打印,输出就不会重复了。

另外顺便提一下getCommands()里的小问题:a = gen_coms.append(...)这行代码是没用的,因为append()方法返回的是None,你不需要把它赋值给变量a,直接写gen_coms.append(file[:-len(com_ext)])就可以了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:36:49