Python練習題 024 求位數及逆序列印

2022-03-26 15:33:10 字數 972 閱讀 8340

【python練習題 024】給乙個不多於5位的正整數,要求:一、求它是幾位數,二、逆序列印出各位數字。

這題如果不用遞迴,實在太簡單了!!!**上:

str = input('請輸入乙個不多於5位的正整數:')

print('這個數字是%s位數,逆序為%s。' % (len(str), str[::-1]))

輸出結果如下:

請輸入乙個不多於5位的正整數:45931

這個數字是5位數,逆序為13954。

就這麼簡單。真有還有必要寫遞迴函式嗎?…… 好吧,我知道這只是一種訓練,但我現在困了,明天再更新遞迴函式吧…… zzz

【2016-10-19 更新】-----------------------------------------

更新一下遞迴函式吧。現在我對遞迴函式的理解是:

def f(x):

if x == 最小值:

return 最小值對應的值或無關緊要的值

else:

return 乙個函式,表示式中要設下 f(x-1) 的套

大概就是這樣子吧。就像這題,要逆序重排幾個字元,那麼在函式裡就應該這麼寫:return 最大的那個字元 + 下乙個字元,而這裡的「下乙個字元」必然也會要求 + 下乙個字元的,如此迴圈至最小的那個 str[0] 。**如下:

str = input('請輸入乙個不多於5位的正整數:')

def f(x):

if x == 0:

return str[0]

else:

return str[x] + f(x-1)

print('%s位數,逆序為:%s' % (len(str), f(len(str)-1)))

搞定!題目出處:程式語言入門經典100例【python版】

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...

python的練習題 Python練習題

1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...

python練習題目

三色球問題 有紅 黃 藍三種顏色的求,其中紅球 3 個,黃球 3 個,綠球 6 個。先將這 12 個球混合放在乙個盒子中,從中任意摸出 8 個球,程式設計計算摸出球的各種顏色搭配。print red tyellow tblue for red inrange 0,4 for yellow in ra...