【Python入门实战】一周吃透基础语法!
趣味数字小游戏合集含循环/分支/迭代器大家好本周我集中学习了Python基础语法、分支循环、循环控制语句以及迭代器等核心知识点与其死记硬背语法规则不如用几个趣味小游戏把这些知识点串起来实战——既练手又好玩新手也能轻松看懂。今天就把这5个涵盖本周所有核心考点的小游戏分享出来每一行代码都加了「人话注释」跟着敲一遍Python基础直接吃透一、游戏1闰年判断器基础语法分支逻辑核心知识点行与缩进、标识符命名、注释、多条件分支and/or、输入输出代码实现def leap_year_checker(): 闰年判断器核心逻辑是「能被4整除但不能被100整除或能被400整除」 这是文档注释和单行注释#的区别是能被Python解释器识别方便查看函数说明 # 1. 获取用户输入并用int()转成数字input默认是字符串哦 # 加个提示语让用户知道要输入啥体验感拉满 year input(请输入你想判断的年份比如2024) # 2. 异常处理防止用户输入非数字比如输个abc导致程序崩溃 try: year int(year) # 尝试转成整数 # 3. 核心分支逻辑闰年判断公式缩进一定要对齐4个空格/1个Tab # 用括号把逻辑分组看起来更清晰新手也不容易晕 if (year % 4 0 and year % 100 ! 0) or (year % 400 0): # 格式化输出把变量嵌入字符串比拼接更优雅 print(f {year}年是闰年可以多过一天~) else: print(f {year}年是平年一年365天哦) except ValueError: # 输入不是数字时友好提示而不是直接报错 print(❌ 输入格式不对请输入纯数字比如2024) # 调用函数运行游戏 leap_year_checker()关键解析缩进Python靠缩进来区分代码块if/else下面的代码必须缩进否则会报错标识符leap_year_checker是合法标识符小写下划线不能用123check以数字开头或if保留字多条件逻辑and是「并且」or是「或者」括号能帮我们理清优先级避免逻辑混乱。二、游戏2猜数字小游戏while循环break异常处理核心知识点while循环、break语句、random模块、try-except异常处理、条件判断代码实现# 导入随机数模块这是Python自带的「工具包」不用自己写随机数逻辑 import random def guess_number_game(): 猜数字小游戏系统随机生成1-100的数字最多猜10次猜对为止 # 1. 生成1-100的随机数作为「答案」 secret_number random.randint(1, 100) # 2. 初始化计数器记录猜的次数从0开始 guess_count 0 # 3. 欢迎语提升游戏体验 print( 猜数字游戏开始系统已生成1-100的随机数你有10次机会~) # 4. while循环条件是「次数10」满足就继续玩 while guess_count 10: # 每次循环次数1 guess_count 1 # 提示剩余次数让用户有预期 print(f\n第{guess_count}次猜测你还剩{10-guess_count}次机会) # 5. 获取用户猜测的数字防止输入非数字 try: user_guess int(input(请输入你猜的数字)) # 6. 条件判断对比猜测值和答案 if user_guess secret_number: # 猜对了用break直接终止循环不用等10次 print(f 恭喜你猜对了答案就是{secret_number}) break elif user_guess secret_number: print( 猜大了再往小了猜猜~) else: print( 猜小了再往大了猜猜~) except ValueError: print(❌ 输入错误请输入1-100的整数) # 7. 循环结束后判断是不是因为次数用完才结束 if guess_count 10 and user_guess ! secret_number: print(f\n 次数用完啦答案是{secret_number}下次加油~) # 运行游戏 guess_number_game()关键解析while循环适合「不确定循环次数」的场景比如不知道用户几次能猜对只要条件满足就一直跑break语句猜对后直接「跳出循环」不用执行剩下的次数提升效率异常处理就算用户输错格式程序也不会崩溃新手友好度拉满。三、游戏3数字累加过滤器for循环continue核心知识点for循环range遍历、continue语句、累加变量代码实现def number_filter_sum(): 数字累加过滤器计算0-20中「不是7的倍数」的数字总和 遇到7的倍数就跳过用continue不参与累加 # 1. 初始化累加器存总和从0开始 total 0 # 2. 欢迎语说明规则 print( 数字累加过滤器计算0-20中「不是7的倍数」的数字总和~) # 3. for循环遍历0-20的数字range(21)是0到20左闭右开哦 for num in range(21): # 4. 判断是不是7的倍数余数为0就是 if num % 7 0: print(f 跳过{num}7的倍数) # continue跳过当前循环直接进入下一次total不加这个数 continue # 5. 不是7的倍数就加到总和里 total num print(f✅ {num}加入累加当前总和{total}) # 6. 输出最终结果 print(f\n 0-20中不是7的倍数的数字总和{total}) # 运行游戏 number_filter_sum()关键解析for循环适合「确定循环次数」的场景比如遍历0-20range(21)会生成0到20的序列continue语句和break不同continue只是「跳过当前这一次」循环还会继续不会终止。四、游戏4九九乘法表循环嵌套核心知识点循环嵌套forfor、格式化输出、循环边界控制代码实现def multiplication_table(): 打印九九乘法表经典的循环嵌套案例新手必练 print( 九九乘法表来啦) # 1. 外层循环控制「行」从1到9 for row in range(1, 10): # 2. 内层循环控制「列」列数≤行数避免重复 for col in range(1, row1): # 3. 格式化输出让表格对齐用\t制表符分隔 # f-string里用{:2d}让数字占2个位置对齐更整齐 print(f{col}×{row}{col*row:2d}\t, end) # 4. 每一行结束后换行不然会挤在一行 print() # 运行程序 multiplication_table()关键解析循环嵌套外层循环管「行」内层循环管「列」先跑外层1次内层跑完所有次再跑外层下一次边界控制内层循环range(1, row1)保证列数≤行数避免打印出「2×12」这种重复内容符合九九乘法表的习惯。五、游戏5迭代器遍历数字序列迭代器基础核心知识点迭代器概念、iter()/next()方法、可迭代对象遍历代码实现带生动注释def iterator_demo(): 迭代器入门用迭代器遍历数字序列理解「按需取值」的特点 迭代器和for循环的区别迭代器是「取一个用一个」不占内存 # 1. 先创建一个可迭代对象1-10的数字列表 number_list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(f 原始数字列表{number_list}) # 2. 把列表转成迭代器用iter()函数 number_iterator iter(number_list) print( 已将列表转为迭代器开始逐个取值~) # 3. 用while循环next()取值直到取完抛出StopIteration异常 try: while True: # next()从迭代器里「取下一个值」 current_num next(number_iterator) print(f✅ 取出数字{current_num}) except StopIteration: # 迭代器取完了提示结束 print(\n 迭代器里的数字已经取完啦) # 4. 拓展迭代器只能取一次取完就空了 print(\n 验证迭代器取完后再取会直接结束) # 重新转迭代器才能再取 new_iterator iter(number_list) # 用for循环遍历迭代器更简洁Python底层就是这么干的 for num in new_iterator: print(f 重新遍历{num}, end ) # 运行程序 iterator_demo()关键解析迭代器本质「按需取值」不像列表一样一次性把所有数据存内存适合处理大数据iter()/next()iter()把可迭代对象列表、range等转成迭代器next()逐个取值取完就抛StopIterationfor循环底层其实就是自动调用iter()和next()并捕获StopIteration异常不用我们手动写try-except。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2415207.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!