导文
习题的经典之处在于把每一系列的习题玩透,编程的业务逻辑和思想就是经常使用的此类解决问题的逻辑,因此把握好每到经典习题
用户输入一个数字
- 打印每一位数字及其重复的次数
题目分析总结
1.此题分析点在于字典的构建,通过构建字典来分析数据的重复次数
2.此题要总结reversed()函数,此函数要总结学习使用,reversed(seq)函数内部是序列。
Return a reverse iterator. seq must be an object which has a reversed() method or supports the sequence protocol (the len() method and the getitem() method with integer arguments starting at 0).
reversed()函数返回的是一个翻转迭代器,另外seq必须是序列对象,满足序列协议。
此题解法如下
#!/bin/python3
#-*- coding: UTF-8 -*-
from collections import OrderedDict
num = input('your number: ')
dictnum = OrderedDict()
for key in reversed(num):
print(key,end=" ")
#此处避免使用三目表达式,True statement if expression else False statement
#三目表达式True后面是statement动作,而本题此处是expression
if not key in dictnum:
dictnum[key] = 1
else:
dictnum[key] += 1
print()
print(dictnum)
运行结果:
your number: 23423
3 2 4 3 2
OrderedDict([(