Python程序问题:数对排序显示、求和及终止逻辑实现求助
解决Python随机数对排序、求和及总和统计问题
原代码存在的问题
while i < 1的循环逻辑冗余,完全可以用while True实现无限循环- 未对数对进行排序输出,也未展示数对的和
- 缺少所有生成数的总和统计逻辑
- 互为相反数的判断重复且缩进错误,第二个
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
相关产品推荐
相关产品推荐

