我試圖建立一個函數(它使用函數遞歸),掃描一個數字,n,尋找一個數字d,&如果找到,我想用d一個指定的數字r,如下面的代碼所示。此代碼工作正常,但輸出是字符串格式。我嘗試了很多方法來改變它輸出一個整數,但無濟於事。謝謝您的幫助!使用遞歸函數時避免字符串+整數加法
def replace_digit(n, d, r):
number = str(n)
i = 0
if len(number) == 1:
if number == str(d):
return str(r)
else:
return number
else:
if number[i] == str(d):
return number[:i] + str(r) + replace_digit(int(number[i+1:]),d,r)
else:
return number[i] + replace_digit(int(number[i+1:]),d ,r)
它是一個鍛鍊?換句話說,你是否特別需要使用遞歸?這是一項非常微不足道的任務。 – DeepSpace
只是在返回值中調用'int()' –
是的,我必須專門寫在遞歸中,因此問題。謝謝。 – jaren