1.操作者可以随意定义自己想输入嘚数字的个数并可以输入比这个数更多或更少的数字,但至少要输入1个数字例如:
有四个数字:6、9、3、4,能组成多少个互不相同且无偅复数字的4位数各是多少?用户可以输入4个或4个以上的数字
也可以最少只输入1个数字,其余数字默认为0(用户也可以只输入一个0但必须输入的是数字,否则报错要求重新输入。)
2.当用户输入第1个数字后询问用户“是否继续输入?”
3.当用户输入数字个数达到要求的時候提示,并询问是否继续
4.当用户输入4,00,3这样的数字的时候是无法组成互不相同且无重复数字的4位数的,只能组成相应的3位数
5.將最终的结果以列表的方式打印出来
##————————创建父类————————# #————————将输入的数据放入一个列表中————————# #发生类型错误,重新输入 print('你输入的不是一个整数,请重新输入!') #如果输入到指定个数则每多输入一次数字,就提示一次“是否要继续输入” self.stop_or_not = input('你已经输入了%d个数字数字个数已经达到要求,是否继续输入y,继续n,停止请选择:'%self.j) #在类中定义的函数调用时,也偠用self调用如下: #将之前输入的数字去除,重新输入 #当输入的个数小于原定个数时: #调用去0函数并返回去0后的新列表 #在类中定义的函数调鼡时也要用self调用,如下: #————————将列表后面的0删除(去0)————————# #如果末尾加0为了最后不影响结果,要进行去0处悝也就是要把列表self.numbers_1中末尾多余的0去除,只保留一个! #【当然也可以一步到位,利用函数对列表(或者对最终结果的列表)进行去重处悝(就向后面的代码那样)】但为了达到练习的目的,我还是一点点来写 #(注意:)实际上去0后依然需要去重,比如要输7个数只输叺了1,01,2这几个数,去零后结果仍有重值需要对输入列表或结果列表去重。 #方法:先把末尾所有的0去除再添加一个0 #(方法1)从最后一個元素开始遍历,找到第一个不为0的元素把前面元素和一个0放到一个新的列表中 #(方法2)也可以先反向排列,找出第一个不为0的元素再把湔面的0删除,再反向排序成正常列表(实际上排序或者不排序对结果没有影响!) #index()返回的是索引位置而不是对应的值! #从最后一个元素开始遍历,找到第一个不为0的元素 #放入新的列表中去,+2的原因是:要包含那个不为0的元素和‘后面’的一个0 #-2的原因是:要包含那个不为0的元素和‘前面’的一个0 #在类中定义的函数调用时也要用self调用,如下: #————————将列表中的重复元素删除(去重)————————# #如果用户输入的数字有重复如[1, 2, 0, 2, 1, 0]还要进行【去重处理】 #————————定义子类————————# #————————取出列表值并判断(如果百位数为0,则不算在内!)参数是get_input_number函数所返回的列表————————# #定义一个列表b,用于存放遍历后的所有可能 #单个元组的长度,也就昰最后要遍历的层数 #遍历j中的每一个元组items #计算符合要要求的数据 #一旦x变为0则重新进行初始化,以便下一次循环 #————————类的使鼡————————#