看板 Python 關於我們 聯絡資訊
def increment(self): num = int(''.join(str(x) for x in self)) num = num + 1 numList = list(str(num).zfill(len(self))) return [int(x) for x in numList] print(increment([0,9,9,9])) 參考: 1. How to convert list to string [duplicate] https://bit.ly/2xz7uSj 2. Nicest way to pad zeroes to a string https://bit.ly/2IidRxs 3. how do I convert a string to a list https://bit.ly/2OQShTf ※ 引述《chinsun ()》之銘言: : 大家好,我目前在國外求學,算是程式新手 : 班上一個人都不認識,助教的口音也幾乎聽不懂QQ : 只好拿作業上來問 : 題目是要寫一個increment的方法,輸入和輸出的型態都要是list : 例子: : z=[0,9,9,9] : z.increment() : 我目前寫的: : def increment(self): : zadd=self.amount : a=zadd : while '9' in a: : a.remove('9') : if a==[]: : zadd=['0',zadd] #如果陣列裡全是9,在最前面加0 : i=len(zadd) : while i!=0: : if zadd[i-1]=='9' : : zadd[i-1]='0' #一項一項將9轉為0 : i-=1 : else: : zadd[i-1]+=1 #非9的話加1 : return zadd : 將9轉為0那邊沒有問題 : 但當陣列全為9,在最前面加入0那邊 : 不知道為什麼zadd其中的9也跟著a被remove掉 : 舉個例子,如果輸入['0','9','9','9'],a會變成['0'],但zadd也會一起變成['0'] : 但我以為zadd應該還是原本的樣子 : 第二個問題是else裡+1那邊,請問要怎麼做才能讓list中的東西進行運算呢 : 我試過將他轉成string,但還是顯示must str not int : 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.246.247 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1537929869.A.725.html