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

Python中如何单独使用函数返回的多个值?代码输出异常求助

问题解决

问题根源

你现在的代码有两个核心问题:

  1. 函数返回的是包含处理后列表和总和的元组,但主程序里直接把元组赋值给x,然后两次打印x,导致输出重复元组,没法分开显示列表和总和。
  2. 删除6到9之间元素的逻辑太复杂,容易出错,还额外加了不必要的None操作。

修正后的代码

def Summer_69(a):
    # 复制原列表,避免修改外部传入的原列表(可选,但更安全)
    processed_list = a.copy()
    if 6 in processed_list and 9 in processed_list:
        start_idx = processed_list.index(6)
        end_idx = processed_list.index(9)
        if end_idx > start_idx:
            # 直接用切片删除6到9(包含6和9)的区间
            processed_list = processed_list[:start_idx] + processed_list[end_idx+1:]
    # 计算总和
    total_sum = sum(processed_list)
    return processed_list, total_sum

# 主程序
a = []
size = int(input("Enter size of the list : "))
for i in range(size):
    val = int(input("Enter values : "))
    a.append(val)
print("Original list : ", a)
# 拆分函数返回的元组,分别接收处理后的列表和总和
new_list, total_sum = Summer_69(a)
print("Summer 69 List : ", new_list)
print('Sum : ', total_sum)

修改说明

  • 把函数里复杂的删除逻辑改成列表切片,直接去掉6到9的区间,代码简洁且不易出错。
  • 删掉了多余的append(None)和remove(None)操作,完全没必要。
  • 主程序里把函数返回的元组拆成两个变量,分别打印,符合你期望的输出格式。
  • 给变量改了更清晰的名字(比如size代替b,start_idx代替b),避免变量名混淆。
  • 可选优化:用processed_list = a.copy()复制原列表,避免函数修改外部传入的原列表,保持数据独立性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:27:23