用來練手的python 練習題其十八,原鏈接 : python練習實例18
題干: 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制
這種類型的疊數相加,讓我不禁聯想到了python中,字符串的乘法運算,那么能否利用字符串的乘法以及字符串與整型的互相轉換來巧妙地完成這個問題呢,答案是肯定的。我們下面先來看幾個測試結果:
a = "2" * 5
print(type(a))
print(a)
b = int(a)
print(type(b))
print(b)
輸出結果如下:
我們發現,在python中,字符串和整型之間的轉換是非常簡單方便的。在計算疊數如22222時,如果我們使用整型矩陣,所需要的步驟就非常繁瑣。反觀使用字符串類型,我們可以輕松地構建一個疊數。原題解法的源代碼如下:
def add_special(value, number):result = 0"""value 是選中的數字number 是相加的數字個數"""for i in range(number):value_str = str(value) * (i+1)result += int(value_str) return result
實驗如下: