利用Python實現倒序任意整數

來源:互聯網
上載者:User

標籤: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實現倒序任意整數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.