我目前正在學習python,所以我提前爲我的代碼的混亂道歉。我的函數是爲了接受一個字符串並將字符串數字加在一起。即一個123的字符串參數將變成1 + 2 + 3並返回6. 我的問題是當我迭代我的列表 - python一直指示變量已被引用之前,任何值已被分配。但是,當我打印出正在計算的值時,它們是正確的。更令人困惑的是,當我返回他們時 - 他們是不正確的。我似乎無法弄清楚我要出錯的地方。誰能告訴我這個問題可能是什麼?Python函數中的數字字符串轉換
謝謝!
listy = []
global total
#Convert number to a list then cycle through the list manually via elements and add them all up
def digit_sum(x):
number= []
number.append(x)
print number
for i in range(len(number)):
result = str(number[i])
print result
#Now it has been converted to a string so we should be able to
#read each number separately now and re-convert them to integers
for i in result:
listy.append(i)
print listy
#listy is printing [5,3,4]
for i in listy:
total += int(i)
return total
print digit_sum(x)
有誰能告訴我爲什麼這是低票?我仍然對堆棧溢出感到陌生,所以這是否有這樣的投票理由?缺乏清晰度嗎? – azurekirby
你有正確的概念,但可以通過使用其他內置功能來使其更清潔。 我注意到的一件事是你的'return'語句嵌套在最後一個for循環中。您需要取消縮進,以便每次循環迭代時都不會調用它。 – Flyer1