【python練習題 024】給乙個不多於5位的正整數,要求:一、求它是幾位數,二、逆序列印出各位數字。
這題如果不用遞迴,實在太簡單了!!!**上:
str = input('請輸入乙個不多於5位的正整數:')print('這個數字是%s位數,逆序為%s。' % (len(str), str[::-1]))
輸出結果如下:
請輸入乙個不多於5位的正整數:45931就這麼簡單。真有還有必要寫遞迴函式嗎?…… 好吧,我知道這只是一種訓練,但我現在困了,明天再更新遞迴函式吧…… zzz這個數字是5位數,逆序為13954。
【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...