【作业】Python-函数封装:输入x = 2,y = 5,则求2+22+222+2222+22222

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))

 

  输出如下:

 

 待续...

 

 

 

posted @ 2019-12-01 11:50  清酒伴歌谣  阅读(2031)  评论(0编辑  收藏  举报