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))
輸出如下:
待續...