我是Python和编程的新手。 我应该在列表中添加前7个数字
grades = [ '9', '7', '7', '10', '3', '9', '6', '6', '2' ]
所以我写了这段代码:
print("1.", grades[0] + grades [1] + grades [2] + grades [3] + grades [4] + grades[5] + grades[6] )
但它只打印出“97710396” 这是刚刚打印出来的数字,因为它是一个没有空格的索引。如何添加它们以便我可以打印51?
答案 0 :(得分:1)
没有给出太多的东西......列表中的“数字”实际上是string
s,而python允许你通过将它们连接在一起来添加字符串。因此'a' + 'b' + '9'
会为您提供'ab9'
。您需要将这些string
转换为int
作为int('19')
,因此int('9') + int('7')
会16
。
答案 1 :(得分:1)
将所有内容转换为整数,总结您需要的内容,打印出来:
print("1.",sum(map(int, grades[:7])))
答案 2 :(得分:0)
您需要将字符串转换为int
来进行数字运算(而不是字符串连接):
grades = ['9', '7', '7', '10', '3', '9', '6', '6', '2']
grades = [int(x) for x in grades]
print("1.", grades[0] + grades[1] + grades[2] + grades[3] +
grades[4] + grades[5] + grades[6])
或者,将sum
与列表切片一起使用(如果要添加的项目是连续项目,则非常有用)
grades = ['9', '7', '7', '10', '3', '9', '6', '6', '2']
grades = [int(x) for x in grades]
print("1.", sum(grades[:7]))
答案 3 :(得分:0)
这些是单独的字符串。你不能对字符串做数学。
对字符串执行+
时会发生什么情况称为字符串连接。
即。 '1'+'2'
将生成'12'
而非'3'
您需要使用int()
将这些转换为整数才能执行算术。
var result = int('1') + int('2')
>> 3
所以要么
print("1.", int(grades[0]) + int(grades [1]) + int(grades [2]) + int(grades [3]) + int(grades [4]) + int(grades[5]) + int(grades[6]) )
的时髦列表理解
grades = [int(x) for x in grades]
print("1.", sum(grades[:7]))
答案 4 :(得分:0)
sum = 0
for i in range(0,7):
sum += int(grades[i])
print(sum)
答案 5 :(得分:0)
列表grades[]
包含字符串变量。整数是整数。您需要将grades[]
列表中的值更改为整数。为此,您需要删除grades[]
中值的引号。然后它将输出该列表中所有数字的总和。 希望这会有所帮助。
答案 6 :(得分:-1)
您可以将reduce
与lambda
一起使用,
>>> print( "1.",reduce(lambda x,y:int(x)+int(y),grades[:7]))
当您使用python 3.x标记此问题时,reduce
现在是functools
模块的一部分。
import functools
print( "1.",functools.reduce(lambda x,y:int(x)+int(y),grades[:7]))