def sumfirstlast(num):
new_list = list(num)
for sum in new_list:
total = int(new_list.pop(0)) + int(new_list.pop())
return(total)
number = input("Input number")
display = sumfirstlast(number)
print(display)
为什么当我键入43682时它返回11而不是6?由于我在列表中添加了第一个和最后一个数字
答案 0 :(得分:0)
我相信total = int(new_list[0])) + int(new_list[len(new_list) - 1])
应该有用。
答案 1 :(得分:0)
问题是不必要的for
循环以及修改列表:
for sum in new_list:
total = int(new_list.pop(0)) + int(new_list.pop())
如果new_list
为['4', '3', '6', '8', '2']
,则在第一次迭代中将总数正确设置为6。但是,您仍然处于循环中-将再次设置总数,这次将3和一起8。
因此,您的方法应该只将第一个元素和最后一个元素加在一起,而没有任何循环:
total = int(new_list[0]) + int(new_list[-1])
大多数时候,您应该使用索引而不是pop()
从列表中获取项目。 pop
主要用于从列表中删除项目;它只是返回为方便起见删除的项目。