我应该将所有数字的行和总计加起来。我可以很好地添加总计,但是我无法添加仅包含负数的行。以下代码将正数相加,但不能正确地将负数相加。
grandTotal = 0
sumRow = 0
for x in range(len(numbers)):
sumRow = (sumRow + x)
print(sumRow)
for x in range(len(numbers)):
for y in range(len(numbers[x])):
grandTotal = grandTotal + int(numbers[x][y])
print(grandTotal)
当用户输入为:
1,1,-2 -1,-2,-3 1,1,1
我的输出是:0 1个 3 -3
而不是:0 -6 3 -3
我知道它与第一个for循环有关,但我无法弄清楚。当我尝试这个:
grandTotal = 0
sumRow = 0
for x in range(len(numbers)):
sumRow = (sumRow + (numbers[x]))
print(sumRow)
for x in range(len(numbers)):
for y in range(len(numbers[x])):
grandTotal = grandTotal + int(numbers[x][y])
print(grandTotal)
我收到错误消息:
File "list.py", line 14, in
sumRow = (sumRow + (numbers[x]))
TypeError: unsupported operand type(s) for +: 'int' and 'list'
为什么我的代码没有加负数?任何帮助将不胜感激!
答案 0 :(得分:0)
你在哪里说
sumRow = (sumRow + (numbers[x]))
要添加整数,您说1 + 1,而不是(1+(1)),这将添加到列表中,因此您可以更改它。 根据我的理解,数字也是一个数组,所以说
numbers[x]
会给你很多数字。您想要的是每一行的总数,以及所有行的总数。这是一个执行此操作的程序。我假设您的程序会自动从用户输入中获取数字。
grandTotal = 0
for row in numbers:
#for each row we find total amount
rowTotl = 0
for value in row:
#for each column/ value we add tot the row total
rowTotl += value
print(rowTotl)
#add this row's value to the grandTotal before we move on
grandTotal += rowTotl
#After all adding we print grand total
print(grandTotal)
您的程序不添加负数的原因,实际上是因为行总计根本没有添加数字。他们只是添加索引,而不是值,因此它们也不适用于正数。总计之所以有效,是因为您要正确添加所有值,而不是添加索引。仅供参考,
for index in range(len(numbers)) :
不给您值,而是:0,1,2,3,4,5,6 ...(索引)直到范围的末尾,以获得您将要执行的值数字
for value in numbers: