本文和你一起探索Python编程经典案例,让你沉浸式学习Python。
你可以拿着题目先思考,然后再对照本文解题方法进行比较。有不同的见解欢迎到公众号中跟我一起探讨。
经典案例【考题】
经典案例解题方法

问题: 1到ipt_num(≥3)能组成多少个互不相同且不重复的三位数字数组?
输入:
3
输出:
1 到 3 能组成 6 种互不相同且不重复的三位数[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

上述案例解题思路为:
step1:应用三层for循环列举出1到ipt_num之间所有可能的数。
step2:如果三个数互不相同则添加到结果列表中。
具体代码如下:
def ord_pl(ipt_num):num = ipt_num + 1all_num = list()for i in range(1, num):for j in range(1, num):for k in range(1, num):if i!=j and i!=k and j!=k:all_num.append([i, j, k])print(1, '到', ipt_num, '能组成', len(all_num), '种互不相同且不重复的三位数')return all_numord_pl(4)
for i in range(1, num):生成一个从1到ipt_num步长为1的等差数列。
i!=j and i!=k and j!=k:判读i、j、k是否互不相同,若不同则返回True,否则返回False。
得到结果:
1 到 4 能组成 24 种互不相同且不重复的三位数[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]
可以手动验证结果是对的。该方法的优点是逻辑简单,理解起来比较清晰。
至此,Python中的编程经典案例【考题】排列组合已讲解完毕。


扫一扫关注我
13162366985
投稿微信号、手机号