菜鸟教程 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)
还有一种思路,将输入的数字转成列表。
长得帅,总能被原谅、、、