標籤:bsp 第一個 拼接 nbsp 實現 code env lis please
這是很早以前學習C時候做過的一個練習題,題目的要求大概是把使用者輸入的三位元倒序輸出,比如說使用者輸入123,然後程式應該輸出的結果是321。如果遇到使用者輸入100,那麼程式應該輸出1。然後我給擴充一下,這個程式來適應於三位元以上的或者三位元以下的。
那麼遇到這個問題,我首先的思路就是想辦法把使用者輸入的數字給他拆開,然後放在列表裡邊。然後拿出來重新拼接一下就好了。所以我寫好的前邊的代碼如下:
#!/usr/bin/env python# -*- coding:utf-8 -*-number = int(raw_input("please input a number:"))numlist = []while 1: if number == 0: break numlist.append(number % 10) number = number / 10
這個時候我們列印numlist的值可以得到一個長度和數字位元相等的列表。
然後是拼接的過程,這裡我想起來Python的高階函數reduce(),這個函數的第一個參數接收一個函數用於處理列表,第二個參數接收的是要處理的列表。
意思是這樣:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
所以處理函數這麼寫的:
def f(x, y): return x * 10 + y
最終的代碼:
#!/usr/bin/env python# -*- coding:utf-8 -*-number = int(raw_input("please input a number:"))numlist = []result = 0while 1: if number == 0: break numlist.append(number % 10) number = number / 10def f(x, y): return x * 10 + yprint reduce(f, numlist)
ps:轉載請註明文章出處。
利用Python實現倒序任意整數