菜鸟教程 Python100例 之实例29

学习编程的路,走得好艰辛。。。

为了巩固基础知识,把菜鸟教程网上的实例拿来练习。。

在做到实例29时,看了网站给出的代码,觉得可以加强一下功能,不由得动了一下脑筋,如下:

原文题目:

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

程序分析:学会分解出每一位数。

网站给出的参考代码:

 #!/usr/bin/python
# -*- coding: UTF-8 -*- x = int(raw_input("请输入一个数:\n"))
a = x / 10000
b = x % 10000 / 1000
c = x % 1000 / 100
d = x % 100 / 10
e = x % 10 if a != 0:
print "5 位数:",e,d,c,b,a
elif b != 0:
print "4 位数:",e,d,c,b,
elif c != 0:
print "3 位数:",e,d,c
elif d != 0:
print "2 位数:",e,d
else:
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)

还有一种思路,将输入的数字转成列表。

上一篇:[ExcelHome]VLOOKUP的别样用法


下一篇:【转载】jQuery Validate 菜鸟教程