【作業】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))

 

  輸出如下:

 

 待續...

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM