菜鳥教程 Python100例 之實例29


學習編程的路,走得好艱辛。。。

為了鞏固基礎知識,把菜鳥教程網上的實例拿來練習。。

在做到實例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)

 還有一種思路,將輸入的數字轉成列表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM