如何对6元素列表拆分的两半分别求和,修复相关Python代码错误?
代码问题分析
range()只能接收整数类型参数,原代码直接传入half1、half2两个列表变量,是触发报错的直接原因- 两个求和函数的参数设计冗余,函数内部直接覆盖了传入的参数值,外部传入的内容根本没有被用到
- 调用求和函数时错误传入了完整的
ticket_list,而不是拆分好的half1、half2,逻辑不匹配 - 不需要额外对遍历的元素做
int()转换,生成ticket_list时已经完成了类型转换
修复代码
按要求用range()实现的版本
ticket = int(input("Input your ticket : ")) # 输入票号 ticket_list = [int(i) for i in str(ticket)] # 转成数字列表 length = len(ticket_list) mid = length//2 half1 = ticket_list[:mid] half2 = ticket_list[mid:] # 拆成前后两半 def sum_half(half_list): total = 0 # 用列表长度作为range的参数,遍历索引取对应元素累加 for i in range(len(half_list)): total += half_list[i] return total a = sum_half(half1) b = sum_half(half2) print(a, b)
更简洁的优化版本
直接用Python内置sum()函数完成求和,不需要自定义遍历逻辑:
ticket = input("Input your ticket : ") ticket_list = [int(i) for i in ticket] mid = len(ticket_list)//2 a = sum(ticket_list[:mid]) b = sum(ticket_list[mid:]) print(a, b)
内容的提问来源于stack exchange,提问作者Blitzisbadatprogramming
相关产品推荐
相关产品推荐

