30个超有趣的Python代码(下)
综合实战篇 · 10个进阶示例(完结)
本系列最后一篇!前面的20个示例已经涵盖了Python的核心基础,今天再加10个综合实战示例,涉及数学算法、随机数据生成、字符串分析、趣味编程等,学完这30个,你的Python基础就非常扎实了。
本篇目录
👉 21 计算最大公约数
👉 22 计算最小公倍数
👉 23 生成随机IP地址
👉 24 计算字符串长度
👉 25 判断素数
👉 26 生成随机姓名
👉 27 计算元音字母数量
👉 28 生成随机坐标
👉 29 计算列表的乘积
👉 30 生成随机迷宫
48 和 18 的最大公约数是多少?Python 的 math 模块一行搞定,无需手写辗转相除算法。
💡 知识点:最大公约数(GCD)是能同时整除两个数的最大正整数;math.gcd() 直接返回结果。
12 和 18 的最小公倍数是 36。利用公式 LCM = |a x b| / GCD,结合 math.gcd() 即可轻松实现。
💡 知识点:// 是整除运算符;abs() 取绝对值;Python 3.9+ 的 math.lcm() 可直接使用。
IPv4地址由4组0~255的数字组成。用列表推导式生成4个随机数,再用点号连接即可。
✔ 运行结果:192.168.45.123(每次随机)
最简单也最常用——len() 函数。不仅适用于字符串,列表、字典、元组等都可以用 len() 获取元素个数。
素数(质数)是只能被1和自身整除的大于1的自然数。优化技巧:只需检查到平方根即可,大幅提升效率。
💡 知识点:% 是取模运算符(求余数);int(n**0.5) + 1 只需检查到平方根;这是一种算法优化思维。
从预设的名和姓列表中随机组合,快速生成英文姓名。可以扩展为中文姓名生成器!
✔ 运行结果:Charlie Johnson(每次随机)
"Hello, Python!" 中有几个元音字母?用生成器表达式配合 sum() 可以优雅地完成条件计数。
💡 知识点:生成器表达式 (1 for x in y if 条件) 配合 sum() 是Python中条件计数的经典写法;in 运算符判断元素是否在序列中。
生成随机的地理经纬度坐标。纬度范围 -90~90,经度范围 -180~180。可用于地图类应用的模拟数据。
✔ 运行结果:(45.6789, -120.3456)(每次随机)
💡 知识点:random.uniform(a, b) 生成 a 到 b 之间的随机浮点数;函数返回元组(用圆括号包裹的多个值)。
1 x 2 x 3 x 4 x 5 = ? 用 reduce() 函数对列表元素依次执行乘法运算,结果累积为最终值。
💡 知识点:reduce() 对列表元素依次执行指定操作并累积结果;lambda x, y: x * y 是匿名函数,定义了"两数相乘"的操作。
最后一个示例来个有趣的!用二维列表表示网格,"#"代表墙壁,空格代表通道,通过概率控制通道密度,生成随机迷宫图案。
💡 知识点:嵌套列表推导式快速创建二维矩阵;random.random() 生成0~1的随机浮点数;概率 > 0.7 控制约30%的格子变为通道。
恭喜你,学完了全部30个示例!
回顾一下,我们已经掌握了:
✅ 基础语法:print、input、变量、函数、循环
✅ 字符串处理:切片、反转、格式化、长度计算
✅ 列表与字典:排序、去重、频率统计
✅ 数学运算:阶乘、GCD、LCM、素数判断
✅ 文件与日期:读写文件、二维码、日期差
✅ 随机数应用:密码、颜色、IP、姓名、坐标
✅ 综合编程:递归、reduce、列表推导式、迷宫生成
30个示例知识点速查
基础入门 01-05:print、for/while循环、函数、f-string、input、random、time
字符串随机 06,11,12,18,20,23-24,26-28:切片、set、join、lambda、format、uniform
数学计算 07,10,21-22,25:递归、math模块、GCD、LCM、**幂运算、素数
列表字典 08,15-17,19,29:sort、Counter、reduce、lambda、字典排序
文件日期 09,13-14:with语句、qrcode库、datetime、timedelta
趣味综合 30:二维列表、列表推导式、random.random()
学编程最重要的就是动手实践。建议你把这30个代码都亲自敲一遍、运行一遍,然后尝试修改参数、添加功能,写出属于你自己的代码。加油!
👉 觉得有用?收藏、转发给更多想学Python的朋友吧