Zerojudge 基礎題庫a038 數字翻轉(Python)
前言:
這題非常簡單,相信再仔細想想一定可以解出來那我就來敘述我是如何解出這道題目的。
首先,我們要先設一個變數來存放題目,叫做q。
所以輸入一個數字存入p變數的程式碼是:
q = input()
下一步呢,要設計幾個例子,越少越好,可以應付所有的情況。
我有想到三個:
q = 12345 q = 50500 q = 00000
通常在寫的時候,我喜歡把 q = input() 先用 q = (數字) 替代,這樣就不用一直打數字,按一下執行就跑出結果了。
但是要注意的是,使用input時,回傳的東西是字串,所以測試時,要寫:
q = '數字'
第一部分:當q = '12345'時
字串不容易編輯,所以先把它變成串列q = '12345' q = list(q)
這樣我們的 '12345' 就會變成 ['1', '2', '3', '4', '5']
接下來呢,你有非常多種作法,但python有的函數叫 reverse(),用一下心裡舒暢~
q = '12345' q = list(q) q.reverse()
現在 ['1', '2', '3', '4', '5'] 變成 ['5', '4', '3', '2', '1']
再使用for迴圈一一輸出,結束!
q = '12345' q = list(q) q.reverse() for i in q: print(i,end = '') print()
第二部分:當q = '50500'時
我們使用上面的程式,最後會輸出 00505但題目有要求,前面有0以下應消除
所以結果應該是505
我們可以檢測q的第一項是否為0,如果為零,把第一項刪掉。
q = '12345' q = list(q) q.reverse() while q[0] == '0': del q[0] for i in q: print(i,end = '') print()
如果你要把第一項變成空字串,記得要用切片處理。
q[0] = [] -> [[], '0', '5', '0', '5']
q[:0] = [] -> ['0', '5', '0', '5']
所以你可以這樣寫:
q = '12345' q = list(q) q.reverse() while q[0] == '0': q[:0] == [] for i in q: print(i,end = '') print()
第三部分:當 q = '00000'
最後,只剩這一個特殊例子,這會使程式運行時產生錯誤。所以我們可以使用 try - except 來解決這個問題
當產生錯誤時,輸出0
所以我們修改一下while區塊:
try: while q[0] == '0': del q[0] except: q = ['0']
最後,我們得到了這題的解答!
q = input() #'5050'' q = list(q) #'5' '0' '5' '0' q.reverse() #0 5 0 5('') try: while q[0] == '0': del q[0] except: q = ['0'] for i in q: print(i,end = '') print()
留言
張貼留言