体育老师带你玩转Python编程(上篇)
吹响集合哨!现在开始《上篇:编程运动装备室》正式训练!
第一课:变量——运动器材管理智慧
体育老师解说:
"变量就像体育馆的储物柜,每个柜子要有专属名牌(变量名),只能存放指定类型的器材(数据类型)。体育委员每天要检查柜门是否关好(变量赋值),就像我们编程要规范使用变量"
核心训练:
# 器材柜登记示例
篮球柜 = 5 # int型(存整数)→ 篮球数量
排球柜 = "8号" # str型(存文字)→ 排球编号
沙包区 = 3.5 # float型(存小数)→ 沙包重量(kg)
# 错误示范
3号柜 = "跳绳" # 变量名不能以数字开头(违反储物柜命名规则)
跳高垫 = 铅球 # 未加引号会报错(铅球不是已定义的变量)
储物柜使用守则:
- 命名三原则
- 见名知意(如跳远成绩比abc好)
- 只用字母/数字/下划线(禁止!@等特殊符号)
- 区分大小写(篮球和LQ是两个柜子)
- 器材存放规范数据类型体育类比示例int跳绳计数跳绳次数 = 158float50米跑成绩50米成绩 = 7.5str运动员编号运动员 = "初三2班王伟"bool是否参加比赛参赛状态 = True
随堂训练:
# 任务:建立你的体育器材管理系统
立定跳远最佳成绩 = 2.3 # 创建浮点型变量
训练口号 = "更高更快更强" # 创建字符串变量
引体向上次数 = 12 # 创建整型变量
是否达标 = True # 创建布尔型变量
print("今日训练档案:")
print("引体向上次数:", 引体向上次数)
print("是否达标:", "是" if 是否达标 else "否")
第二课:输入输出——体测数据交互
体育老师解说:
"input()就像肺活量测试时对着仪器吹气,需要你主动提供数据;print()好比体育委员把成绩写在公告栏,让所有人都能看到结果"
核心训练:
# 体测数据采集系统
姓名 = input("请输入姓名(如张三):")
肺活量 = int(input("吹气成绩(毫升):")) # 强制转换为整数
视力 = float(input("左眼视力(如5.0):"))
print("\n=== 体测成绩单 ===")
print(f"姓名:{姓名}")
print("肺活量:" + str(肺活量) + "ml") # 字符串拼接
print("视力:", 视力)
输入输出技巧:
- 类型转换四式
- int():把字符串转为整数(如体测次数)
- float():转为小数(如跑步成绩)
- str():转为文本(如拼接成绩单)
- eval():智能转换(慎用!相当于未检查器材直接使用)
- 格式化输出秘籍
# 三种输出方式对比
print("百米成绩:", 12.5, "秒") # 逗号拼接法
print("百米成绩:" + str(12.5) + "秒") # 字符串连接法
print(f"百米成绩:{12.5}秒") # f-string(推荐!)
随堂训练:
# 任务:制作运动会报名表
print("==== 运动会报名 ====")
项目 = input("请选择项目(1跳远 2铅球 3接力):")
班级 = input("你的班级(如初三1班):")
最好成绩 = input("该项目个人最好成绩:")
print(f"\n{班级}的运动员已报名:")
print("参赛项目:" + ["跳远", "铅球", "接力"][int(项目)-1])
print("历史最佳:",最好成绩)
第三课:基本运算——运动成绩计算
体育老师解说:
"Python的运算符号就像体育比赛的计分规则,加减乘除控制数据变化,比较运算符决定胜负关系,逻辑运算符像裁判的组合判罚"
核心训练:
# 篮球比赛计分系统
三分球 = 5
两分球 = 8
罚球 = 3
总得分 = 3*三分球 + 2*两分球 + 1*罚球
# 比较运动员成绩
张三跳远 = 2.5
李四跳远 = 2.7
print("李四更远吗?", 李四跳远 > 张三跳远) # 输出True
# 体能训练达标判断
仰卧起坐 = 45
跑步时间 = 7.2
达标 = (仰卧起坐 >= 40) and (跑步时间 <= 8.0)
print("综合达标:", "通过" if 达标 else "加练")
第四课:数据结构——运动队组织艺术
体育老师解说:
"列表就像田径队的队员队列,字典如同运动员档案册,集合好比不允许重复的参赛编号。合理组织数据就像排兵布阵,直接影响比赛效率"
核心训练:
# 篮球队员名单(列表)
首发阵容 = ["中锋", "大前锋", "小前锋", "得分后卫", "控球后卫"]
替补名单 = ["第六人", "新秀", "老将"]
# 运动员档案(字典)
王伟 = {
"班级": "初三2班",
"项目": ["跳远", "100米"],
"最好成绩": {"跳远": 2.5, "100米": 12.8}
}
# 比赛编号管理(集合)
已使用号码 = {10, 23, 45}
新号码 = {23, 66}
有效号码 = 新号码 - 已使用号码 # 结果为{66}
数据结构使用规范:
类型 | 体育类比 | 特色功能 |
列表 | 接力赛选手顺序 | 有序可变,append()添加队员 |
元组 | 比赛固定规则 | 有序不可变,如(3,2,1)倒计时 |
字典 | 运动员体检报告 | 键值对快速查询,get()方法 |
集合 | 唯一参赛编号 | 自动去重,集合运算 |
随堂训练:
# 任务:创建班级运动档案
班级 = "初三3班"
跑步成绩 = [12.5, 13.0, 11.9, 14.2] # 四位同学50米成绩
运动员档案 = {
"班长": {"项目": "跳高", "记录": 1.65},
"体育委员": {"项目": "铅球", "记录": 8.2}
}
print(f"{班级}最佳跑步成绩:{min(running_scores)}秒")
print("体育委员参赛项目:", 运动员档案["体育委员"]["项目"])
第五课:代码注释——训练日志秘籍
体育老师解说:
"注释就像训练日记里的心得笔记,好的注释要让三个月后的自己也能看懂,就像让替补队员能快速理解战术板"
核心训练:
# 体能训练计划生成器(单行注释)
"""
训练模块说明:
1. 根据BMI指数制定计划
2. 自动生成周训练课表
""" # 多行注释
def 计算_BMI(体重, 身高):
'''
功能:计算身体质量指数
参数:
体重 - 千克(kg)
身高 - 米(m)
返回:BMI数值(浮点型)
''' # 函数文档字符串
return 体重 / (身高 ** 2)
# 示例:小明体检数据
小明_BMI = 计算_BMI(65, 1.75) # 结果约21.22
注释规范三原则:
- 战略级注释:文件开头说明整体功能(如同训练大纲)
- 战术级注释:复杂逻辑前解释思路(类似技术动作分解)
- 子弹级注释:关键变量说明(好比装备使用注意事项)
随堂训练:
# 任务:给下面代码添加体育主题注释
"""
运动会跳远成绩管理系统
版本:1.0
作者:体育部
"""
成绩列表 = [] # 存储所有运动员成绩(单位:米)
def 录入成绩(姓名, 成绩):
'''记录运动员最好成绩并更新排行榜'''
if 成绩 > 3.0: # 校记录保持线
print("破纪录警告!")
成绩列表.append((姓名, 成绩))
# 示例数据录入
录入成绩("张三", 2.85)
录入成绩("李四", 3.05)
上篇综合实战:运动会报名系统
# 初始化数据存储
报名表 = []
项目列表 = ["100米", "跳远", "铅球", "4x100接力"]
while True:
print("\n=== 运动会报名系统 ===")
print("1. 新报名 2. 查看报名表 3. 退出")
选择 = input("请选择操作:")
if 选择 == "1":
姓名 = input("运动员姓名:")
print("可选项目:")
for i, 项目 in enumerate(项目列表, 1):
print(f"{i}. {项目}")
项目编号 = int(input("选择项目编号:")) - 1
报名表.append({
"姓名": 姓名,
"项目": 项目列表[项目编号],
"班级": input("所在班级:"),
"最好成绩": input("个人最佳:")
})
print("报名成功!")
elif 选择 == "2":
print("\n=== 当前报名表 ===")
for 参赛者 in 报名表:
print(f"{参赛者['姓名']}({参赛者['班级']})")
print(f"项目:{参赛者['项目']} 最佳:{参赛者['最好成绩']}\n")
elif 选择 == "3":
print("系统已退出")
break
else:
print("输入错误,请重新选择!")
项目要点解析:
- 循环结构:用while循环维持系统持续运行
- 列表存储:报名表列表存储所有字典格式的报名信息
- 字典组织:每个参赛者的信息用键值对清晰存储
- 流程控制:通过if-elif处理不同操作选择
上篇总结检测:
完成以下任务检验学习成果:
- 创建存储全班跳远成绩的列表,找出前三名
- 编写包含姓名、年龄、项目的运动员字典
- 制作体测BMI计算器,包含输入身高体重功能
- 为你写的代码添加战术级注释说明