首页/新闻资讯/正文详情

Python循环结构实战:数字金字塔、质数判断与乘法表

发布时间:2026/9/23 9:47:01 来源:云帆数科 栏目:资讯中心
Python循环结构实战:数字金字塔、质数判断与乘法表
1. 循环基础与练习题价值刚接触Python编程时循环结构就像是一道难以跨越的门槛。记得我最初学习for循环时盯着那个简单的for i in range(5)看了足足十分钟完全不明白这个i到底从哪来、到哪去。直到后来通过实际练习题才真正理解了循环的精髓。这三个经典练习题之所以经典是因为它们覆盖了循环最核心的三种应用场景遍历序列、条件控制和嵌套逻辑。通过它们你能掌握如何用循环处理有规律的数字序列如何结合条件判断实现复杂逻辑如何处理多层循环的配合关系更重要的是这些练习能培养你的循环思维——看到重复性任务时能立刻想到用循环结构来简化代码。这种思维对后续学习函数、类等高级概念都至关重要。2. 练习题一数字金字塔2.1 问题描述打印如下数字金字塔1 121 12321 1234321 1234543212.2 解题思路拆解这个金字塔有以下几个特征每行数字呈回文对称结构数字从1递增到行号再递减回1每行前面有数量不等的空格用于居中我的实现方案是外层循环控制行数1到5内层两个循环分别处理空格和数字数字部分拆分为递增和递减两段2.3 完整实现代码n 5 for i in range(1, n1): # 打印前导空格 print( *(n-i), end) # 打印左半边数字(1到i) for j in range(1, i1): print(j, end) # 打印右半边数字(i-1到1) for k in range(i-1, 0, -1): print(k, end) # 换行 print()2.4 关键技巧说明end参数阻止print自动换行让数字能连续输出空格计算每行空格数为n-i实现金字塔的居中效果递减循环range(i-1, 0, -1)中的-1表示步长为负注意初学者常犯的错误是忘记处理数字的对称性只打印递增部分。观察输出模式是解题关键。3. 练习题二寻找质数3.1 问题描述找出100以内的所有质数并打印输出。3.2 质数判断算法质数判断有多种方法这里采用最直观的试除法质数定义只能被1和自身整除的自然数优化点1只需检查到√n即可优化点2跳过偶数判断除2外3.3 代码实现与优化基础版本for num in range(2, 100): is_prime True for i in range(2, num): if num % i 0: is_prime False break if is_prime: print(num)优化版本print(2) # 唯一的偶质数 for num in range(3, 100, 2): # 只检查奇数 is_prime True for i in range(2, int(num**0.5)1): if num % i 0: is_prime False break if is_prime: print(num)3.4 性能对比通过timeit模块测试基础版约1.2ms优化版约0.4ms实测心得在数据量较大时算法优化带来的性能提升会非常显著。质数计算是个很好的算法复杂度教学案例。4. 练习题三乘法表打印4.1 问题描述打印9×9乘法表格式如下1*11 1*22 2*24 1*33 2*36 3*39 ...4.2 嵌套循环设计分析乘法表的结构特点共9行行号i从1到9每行有i个等式每个等式形式为j*i结果其中j从1到i4.3 完整代码实现for i in range(1, 10): for j in range(1, i1): print(f{j}*{i}{i*j}, end\t) # 使用制表符对齐 print() # 每行结束换行4.4 格式化输出技巧f-string用法f{变量}是Python 3.6的推荐格式化方式制表符\t比空格更能保证对齐效果避免使用print(x, end )因为不同数字位数会导致错位常见错误修正循环范围错误内层应该是range(1, i1)而非range(1, 10)换行位置外层循环每次迭代后需要换行5. 循环编程的进阶技巧5.1 循环控制语句实战break完全终止循环continue跳过当前迭代else循环正常结束时执行非break退出时示例寻找第一个非质数for num in range(2, 100): for i in range(2, int(num**0.5)1): if num % i 0: print(f{num}不是质数) break else: continue break5.2 列表推导式替代循环许多循环可以用更简洁的列表推导式实现# 传统方式 squares [] for x in range(10): squares.append(x**2) # 列表推导式 squares [x**2 for x in range(10)]5.3 性能优化建议尽量减少循环内的计算将不变的计算提到循环外使用内置函数如map()、filter()通常比显式循环快避免不必要的循环考虑是否真的需要循环结构6. 常见问题与调试技巧6.1 无限循环问题症状程序卡死CPU占用高 解决方法检查循环条件是否可能永远为真添加临时打印语句观察变量变化使用调试器设置断点6.2 边界条件错误典型表现少处理第一个/最后一个元素范围设置错误如range(1, n)实际需要range(n)调试方法打印循环变量的起始和结束值手动计算预期的循环次数6.3 循环效率低下优化策略减少嵌套层级使用更高效的数据结构如集合用于成员检查应用数学公式替代暴力计算7. 实际工程中的应用案例7.1 文件批量处理import os for filename in os.listdir(.): if filename.endswith(.txt): with open(filename) as f: content f.read() # 处理文件内容...7.2 数据清洗cleaned_data [] for record in raw_data: if is_valid(record): # 自定义验证函数 processed process_record(record) cleaned_data.append(processed)7.3 游戏开发中的主循环while True: handle_input() update_game_state() render_graphics() if game_over: break8. 学习资源与进阶路径8.1 推荐练习平台LeetCode简单题巩固基础循环技巧Project Euler数学相关的编程挑战Codewars社区提供的各种难度练习题8.2 进阶学习方向生成器与yield更高效的循环方式递归算法另一种重复执行的方式并行计算多线程/多进程处理循环任务8.3 调试工具推荐Python自带的pdb调试器VS Code的调试功能PyCharm的专业调试工具我个人的经验是掌握循环的关键不在于死记硬背语法而是培养识别重复模式的能力。当你看到一个问题时能自然想到这里可以用循环简化那才是真正掌握了循环的精髓。建议从修改这些练习题开始比如尝试打印不同大小的金字塔或者找出1000以内的质数在实践中深化理解。

相关推荐

Apache DolphinScheduler Sqoop 任务节点实战指南:从 MySQL 到 Hive 的数据导入
Apache DolphinScheduler Sqoop 任务节点实战指南:从 MySQL 到 Hive 的数据导入

任务调度大数据后端前端 【免费下载链接】dolphinscheduler Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code 项目地址: https://gitcode.com/gh_mirrors/do/dolphinscheduler 点击查… · 2026/9/23 9:47:01

Stylepix 源码拆解:新手避坑指南与核心逻辑剖析
Stylepix 源码拆解:新手避坑指南与核心逻辑剖析

Stylepix 源码拆解:新手避坑指南与核心逻辑剖析 面试被问原理答不上来,简历写得再漂亮也白搭。很多开发者盯着 GitHub 开源仓库里的代码看,却抓不住 Stylepix… · 2026/9/23 9:47:01

C#运算符优先级详解与避坑指南
C#运算符优先级详解与避坑指南

1. 运算符优先级那些坑刚接触C#那会儿,我写过这么一段代码:int result a b * c / d - e;当时自信满满觉得计算机肯定会按数学运算顺序处理,直到测试结果和预期差了十万八千里。后来才知道,在编程语言里运算符优先级就像交通规则… · 2026/9/23 9:47:01

杭州校招高频面试题避坑指南:版本升级后API全变了怎么办
杭州校招高频面试题避坑指南:版本升级后API全变了怎么办

杭州校招高频面试题避坑指南:版本升级后API全变了怎么办 版本升级后 API 全变了,这是杭州校招现场最让人头疼的“高频面试题”陷阱。很多候选人拿着旧版文档去面试,结果被面试官一句“现在都用 v3… · 2026/9/23 16:24:52

从数据管理到语义治理,业务智能盘点平台v2.0试图补齐中台短板
从数据管理到语义治理,业务智能盘点平台v2.0试图补齐中台短板

中翰软件近日发布中翰业务智能盘点平台v2.0,基于自研Navigate OS底座和业务梳理平台v1.0。该平台定位为“让业务人员自己就能把业务理清楚”的一站式智能盘点与知识构建平台,融合AI智能解析能力与FDE式业务梳理方法论,实现指标梳理、资源盘点… · 2026/9/23 16:24:52

git-cliff 模板语法完全指南:基于 Tera 的 Changelog 模板引擎与自定义过滤器实战
git-cliff 模板语法完全指南:基于 Tera 的 Changelog 模板引擎与自定义过滤器实战

git-cliff 模板语法完全指南:基于 Tera 的 Changelog 模板引擎与自定义过滤器实战 【免费下载链接】git-cliff A highly customizable Changelog Generator that follows Conventional Commit specifications ⛰️ 项目地址: https://gitcode.com/gh_mirrors/gi/… · 2026/9/23 16:24:51

搞懂分辨率是什么的保姆级教程,解决API变动痛点
搞懂分辨率是什么的保姆级教程,解决API变动痛点

搞懂分辨率是什么的保姆级教程,解决API变动痛点 版本升级后 API 全变了,导致项目渲染错乱?别慌,这篇关于 分辨率是什么 的保姆级教程,能帮你从源码底层彻底搞清 DPR 机制。… · 2026/9/23 16:24:51

3个实战项目揭秘:在家可开啥小型加工厂避坑指南
3个实战项目揭秘:在家可开啥小型加工厂避坑指南

3个实战项目揭秘:在家可开啥小型加工厂避坑指南 复制来的代码跑不通,报错信息满屏红,改了一下午还是没头绪。这种崩溃感,每个写代码的人都懂。尤其是在做 实战项目… · 2026/9/23 16:24:39

AI网关实战:小团队如何统一管理多模型API并有效控制成本
AI网关实战:小团队如何统一管理多模型API并有效控制成本

如果你的团队已经接入过OpenAI、Claude、智谱、本地Llama之类的模型,大概率经历过这种失控状态:不同同学各自申请API Key,账单月底一起贴报销,谁调了多少、有没有超预算完全黑盒;换一个模型要改业务代码,出… · 2026/9/23 16:24:39

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码