累加操作:通过for循环将分割后的字符串分离
算术运算符:**幂运算、//整除
复合赋值运算符:+=、-=、*=、**=、/=、//=、%=
内置sum函数:(如果你在代码中重新定义了sum
变量,它将覆盖内置的sum
函数, 所以变量命名要小心)
基本语法:
sum(列表,初始值)
初始值是总和的初始值,然后将列表中的元素依次相加
还有一个问题仍存在,就是列表中的所有元素仍然是字符串,我们需要用一种快捷操作将列表中的所有元素转换成整数,这可以使用内置的map()
函数,它也常用于Python中的列表操作,可以将一个函数应用到序列的每个元素,并返回一个包含结果的新序列(这个新序列的类型是否需要我们自己在前面定义?例如tupple、list)。
map()
的一般语法如下:
map(function, list)
function
是一个要应用到列表中每个元素的函数。list
是要处理的列表
string_numbers = ["1","2","3","4","5"]
# 使用 map(int, list) 将列表中的所有字符串元素全都转换成整数
# 再在外面加一层list(), 使用list()方法将map的返回结果转为列表
int_numbers = list(map(int, string_numbers))
print(int_numbers)
所以在本题中可以用以下代码:
numbers = list(map(int, input_line[1:])
这里的input_line[1:]
是一个切片操作,表示从列表中获取从指定索引(包括该索引)到序列末尾的所有元素, 然后对这些元素都执行int
函数转换,将之转换成整数,并最终返回一个新的列表。
while True:
try:
input_line = input().split()
n = int(input_line[0])
if n == 0:
break
nums = list(map(int, input_line[1:]))
total = sum(nums)
print(total)
except:
break
常用的数学运算
内置的
abs(x)
: 返回数字的绝对值max(x, y, z, ...)
: 返回一组数据中的最大值min(x, y, z, ...)
: 返回一组数据中的最小值pow(x, y)
: 返回 x 的 y 次方,参数为整数round(x)
:返回浮点数 x 的四舍五入值
需要导入math模块:
math.ceil(x)
: 返回一个大于或等于 x 的最小整数。math.floor(x)
: 向下取整,返回一个比 x 小的最大整数。math.pow(x, y)
: 返回 x 的 y 次方, math模块会把参数转换成浮点数。math.sqrt(x)
: 返回 x 的平方根
导入random模块:生成随机数
代码如下:
while True:
try:
input_line = input().split()
n = int(input_line[0])
if n == 0:
break
total = 0
for i in range(n):
total = total + int(input_line[i + 1])
print(total)
except:
break
【注意】:
和c++不同,python中的for循环永远的都是左闭右开区间,不能自己控制,所以在循环体中用变量i来索引时,要注意i的取值。