这是一个相对比较简单的数学题,首先我们先对题目进行分析
分析:三位数,个位、十位、百位分别都可以是1、2、3、4这四个数字,但要求互不相同且无重复,就要求个位不等于十位,个位不等于百位,十位不等于百位
分析完毕后,我们可以就可以开始编写代码了!
方法1:
首先是相对比较基础的,利用for循环嵌套附加if判断筛选实现
i = 0
for x in range(1, 5):
for y in range(1, 5):
for z in range(1, 5):
if x != y and x != z and y != z:
i +=1
print(x, y, z) # 注意,千万别写成print(xyz)
"""
下面附带另外两种打印方法加深影响:
方法1:print('%d%d%d' % (x, y, z))
方法2:print('{0}{1}{2}'.format(x,y,z))
"""
print('共计有%d个结果' % i) # 注意别放错了缩进位置
方法2:
利用itertools库实现(itertools库介绍见文章)
import itertools
list_1 = [1, 2, 3, 4]
count = 0
list_2 = list(itertools.permutations(list_1, 3))
for i, j, k in list_2:
print('%d%d%d' % (i, j, k), end=" ")
count += 1
print("")
print("共计有%d种结果" % count)
|