Python 练习实例29
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
程序分析:学会分解出每一位数。
程序源代码:
实例(Python2.x)
#!/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
实例(Python3.x)
#!/usr/bin/python x = int(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)
以上实例输出结果为:
请输入一个数: 23459 5 位数: 9 5 4 3 2
请输入一个数: 3472 4 位数: 2 7 4 3
Python 100例
叮咚
126***9648@qq.com
其他解法
输出实例:
叮咚
126***9648@qq.com
叮咚
126***9648@qq.com
其他参考解法:
测试输出结果:
叮咚
126***9648@qq.com
mythwind
774***013@qq.com
其他参考解法:
mythwind
774***013@qq.com
未来星
mas***ing2010@163.com
其他参考解法:
#!/usr/bin/python # -*- coding: UTF-8 -*- def output(num,l): if l == 0: return print (num[l-1]), output(num,l-1) num = raw_input('输入小于5位正整数 :' ) l = len(num) output(num,l) print '\n长度为: %d' % l未来星
mas***ing2010@163.com
等一个人
252***465@qq.com
Python3 下使用列表的 reverse 方法:
#!/usr/bin/env python3 num = list(input('输入一个最多5位的数字:')) print(len(num)) num.reverse() for i in range(len(num)): print(num[i], end='')等一个人
252***465@qq.com
swordzjc
hfu***9@163.com
参考方法:
#!/usr/bin/python3 # coding:utf-8 s = str(input()) def fun(m): if len(m) == 1: return m[0] else: return (m[len(m) - 1] + fun(m[:(len(m) - 1)])) if len(s) > 5: print("输入数字超过限定位数,输入无效") else: print('数位:%s\n输入的数字:%s\n逆序数字:%s' % (len(s), s, fun(s)))swordzjc
hfu***9@163.com
菜鸟py
928***115@qq.com
参考方法:
菜鸟py
928***115@qq.com
qingfeng
297***734@qq.com
参考方法:
qingfeng
297***734@qq.com
朦胧
253***5732@qq.com
Python3 测试实例:
# coding:utf-8 num=int(input("请输入一个正整数:")) def fn(s): if len(s)==1: return(s[0]) else: a=s[-1] s=s[:-1] return(a+fn(s)) while 1: if num<=0 or len(str(num))>5: num=int(input("输入错误,请重新输入:")) else: num=str(num) print() print("它是%d位数" % len(num)) print("逆序打印:",fn(num)) break朦胧
253***5732@qq.com
fish
353***832@qq.com
参考方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- def num(strl): l = len(str(strl)) lis = [] for i in range(l): x = strl % 10 strl /= 10 lis.append(x) print "长度为:{0}, \n逆序为:{1}".format(l,''.join(str(x) for x in lis) ) num(123)fish
353***832@qq.com
colinshi
col***shi@hotmail.com
Python3 下测试:
#!/usr/bin/python3 x=input('请输入一个数:\n') a = len(x) print('这是一个{}位数'.format(a)) b = -1 while a != 0: a -= 1 if b == -1: print(x[-1:],end=' ') b=b-1 else : print(x[b:b+1],end=' ') b=b-1colinshi
col***shi@hotmail.com
CosmosHua
cos***cosmos@163.com
Python3 参考实例:
CosmosHua
cos***cosmos@163.com
按剑当歌
yan***8908038@163.com
参考方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- num1=int(input("Please input a int <10000:")) for i in range(4,1,-1): if num1>10**i: print(i+1) break list1=[] for j in range(i,-1,-1): list1.append(int(num1/(10**j))) num1=num1%(10**j) for k in range(i,-1,-1): print(list1[k])按剑当歌
yan***8908038@163.com
苏格拉顶
qia***avie@163.com
Python3 参考:
number = 12344 print("数字%d," % number, end="") n = 0 result = "" while number > 0: result += str(number % 10) number //= 10 n += 1 print("是%d位数, 逆序: %d" % (n, int(result)))苏格拉顶
qia***avie@163.com