1.1 封装函数实现如下要求
例如:输入2,5
则求:2 + 22+222 + 2222+22222的和
首先我们贴上答案:
第一次想到了一个超级笨的办法 代码如下:
# 定义函数 def func_sum(x, y): # 把x转为字符串赋值给c,方便操作 c = str(x) s = 0 # 定义一个空列表后面用来存储y项x list_num = [] # 遍历y项 x,并且把它添加到列表中存储起来 for i in range(1, y+1): c *= i list_num.append(c) # 这里需要把c重新复原,否则会有很多c拼接起来 c = str(x) # 打印一下列表看一下是否是我们需要的列表 print(list_num) for a in list_num: # 把提取出来的字符转转换为int型 b = int(a) # 累加操作 s += b # 返回最终结果 print(s) # 调用函数 func_sum(2, 5)
输出如下:
简要思路就是需要计算的y项依次叠加的x添加到列表里 然后再遍历列表把值取出来相加
然后无聊的时候又看了看自己的代码,再简化一下:
# 突然零感来了,又想到一个方法 def get_sum(x, y): sum1 = 0 c = str(x) for n in range(0, y): # 0 1 2 a = n * c + c # n = 0 a = 3 n = 1 c =33 n = 2 a = 333 x = int(a) sum1 += x # sum1 = 3 33 333 return sum1 # 调用函数 print(get_sum(3, 3))
输出如下:
待续...