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

Python程序问题:数对排序显示、求和及终止逻辑实现求助

解决Python随机数对排序、求和及总和统计问题

原代码存在的问题

  1. while i < 1的循环逻辑冗余,完全可以用while True实现无限循环
  2. 未对数对进行排序输出,也未展示数对的和
  3. 缺少所有生成数的总和统计逻辑
  4. 互为相反数的判断重复且缩进错误,第二个break永远不会执行

修改后的完整代码

import random

total_sum = 0  # 初始化所有生成数的总和

while True:
    num1 = random.randint(-5, 5)
    num2 = random.randint(-5, 5)
    
    # 计算当前数对的和
    pair_sum = num1 + num2
    # 将两个数从小到大排序
    sorted_numbers = sorted([num1, num2])
    
    # 按要求输出排序后的数对和数对的和
    print(f"({sorted_numbers[0]}, {sorted_numbers[1]}),数对的和:{pair_sum}")
    
    # 累加当前两个数到总总和中
    total_sum += num1 + num2
    
    # 判断是否互为相反数,满足条件则终止循环
    if num1 == -num2:
        break

# 输出所有生成数的总和
print(f"所有生成数的总和:{total_sum}")

关键逻辑说明

  • 循环控制:用while True创建无限循环,直到生成互为相反数的数对时触发break终止
  • 数对排序:利用Python内置的sorted()函数,将两个数组成的列表排序,直接得到从小到大的序列
  • 和的计算:pair_sum记录当前数对的和,total_sum持续累加所有生成的随机数
  • 终止条件:num1 == -num2已完全覆盖互为相反数的判断,无需重复写num2 == -num1
  • 格式化输出:使用f-string让输出内容更简洁易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:45:38