學習編程的路,走得好艱辛。。。
為了鞏固基礎知識,把菜鳥教程網上的實例拿來練習。。
在做到實例29時,看了網站給出的代碼,覺得可以加強一下功能,不由得動了一下腦筋,如下:
原文題目:
題目:給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
程序分析:學會分解出每一位數。
網站給出的參考代碼:
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 x = int(raw_input("請輸入一個數:\n")) 5 a = x / 10000 6 b = x % 10000 / 1000 7 c = x % 1000 / 100 8 d = x % 100 / 10 9 e = x % 10 10 11 if a != 0: 12 print "5 位數:",e,d,c,b,a 13 elif b != 0: 14 print "4 位數:",e,d,c,b, 15 elif c != 0: 16 print "3 位數:",e,d,c 17 elif d != 0: 18 print "2 位數:",e,d 19 else: 20 print "1 位數:",e
參考代碼的功能太簡單,只能檢測5位數以內的整數,如果按這種邏輯寫,十位如何,百位又當如何,動了一下腦筋,使用遞歸,可以實現N位數檢測,並反轉顯示,代碼如下:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
n = raw_input("Input the number: ")
s = list(n)
l = len(str(n))
def output(s,l):
if l == 0:
return
print s[l - 1]
output(s,l - 1)
output(s,l)
print '"%s" is %d digits' % (n,l)
還有一種思路,將輸入的數字轉成列表。
