本文和你一起探索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 种互不相同且不重复的三位数[[1, 2, 3],[1, 2, 4],[1, 3, 2],[1, 3, 4],[1, 4, 2],[1, 4, 3],[2, 1, 3],[2, 1, 4],[2, 3, 1],[2, 3, 4],[2, 4, 1],[2, 4, 3],[3, 1, 2],[3, 1, 4],[3, 2, 1],[3, 2, 4],[3, 4, 1],[3, 4, 2],[4, 1, 2],[4, 1, 3],[4, 2, 1],[4, 2, 3],[4, 3, 1],[4, 3, 2]]
可以手动验证结果是对的。该方法的优点是逻辑简单,理解起来比较清晰。至此,Python中的编程经典案例【考题】排列组合已讲解完毕。
如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
用Python绘制520永恒心动
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)