当前位置: 首页 > news >正文

6个月Python学习计划 Day 7 - 复盘 + 测试日

第一周

Day 1 - Python 基础入门 & 开发环境搭建
Day 2 - 条件判断、用户输入、格式化输出
Day 3 - 循环语句 + range 函数
Day 4 - 列表 & 元组基础
Day 5 - 字典(dict)与集合(set)
Day 6 - 综合实战:学生信息管理系统

🧾 一周知识回顾(Week 1)

模块内容关键词
Python 入门变量、数据类型、输入输出str, int, float, bool, input(), print()
控制结构分支语句 if-elif-else,比较运算符==, !=, <, >, and, or, not
循环结构for,while,range(),嵌套循环循环变量、break、continue
列表增删查改、遍历、内置函数append(), remove(), sort(), in
综合项目学生信息管理系统字典列表、函数封装、菜单逻辑、保存数据

🧠 自我测试题

✅ 基础题

  1. 写出下面代码的输出结果:

    name = "Alice"
    age = 25
    print(f"{name} 明年 {age + 1} 岁")
    

    输出结果为:

    Alice 明年 26
  2. 判断下面语句是否成立,并说明原因:

    a = 10
    b = 20
    if a > 5 and b < 15:print("True")
    else:print("False")
    

    🔍 条件分析:

    • a > 5
      • a = 10
      • 判断:10 > 5 → ✅ True
    • b < 15
      • b = 20
      • 判断:20 < 15 → ❌ False

    🧠 and 运算符规则:

     - and 要求 两个条件都为 True,整个判断才是 True。- 只要其中一个为 False,结果就是 False。
    

    ✅ 结论:

     - a > 5 and b < 15 的结果是 True and False → False- 所以执行的是 else 分支:
    

    输出结果:

    	False
    

    💬 答案总结:

    该语句不成立,因为 b < 15 是 False。and 运算符要求两个条件都为 True 才整体为 True,因此 else 分支被执行,打印输出 False。

  3. 编写一个程序,输入一个整数,如果大于等于60则输出“及格”,否则输出“不及格”。

    # 获取用户输入
    score = int(input("请输入成绩(整数):"))# 判断成绩是否及格
    if score >= 60:print("及格")
    else:print("不及格")
    
  4. range(1, 10, 2) 生成了哪些数字?

    range(1, 10, 2) 表示从 1 开始,到 小于 10 的数字,每次增加 2,构成一个序列。

    range(start, stop, step)
    
    • start=1:起始值(包含)
    • stop=10:终止值(不包含)
    • step=2:步长,每次加 2

    ✅ 生成的数字:

    1, 3, 5, 7, 9
    

    因为:

     - 1 是起始- 加 2 → 3 ✅- 加 2 → 5 ✅- 加 2 → 7 ✅- 加 2 → 9 ✅- 再加 2 → 11 ❌(超过 stop=10,终止)
    

    📌 输出验证代码:

    for i in range(1, 10, 2):print(i, end=" ")
    

    输出:

    1 3 5 7 9
    

程序设计题

  1. 打印九九乘法表(用嵌套循环)
    示例: 1x1=1 到 9x9=81

    # 九九乘法表
    for i in range(1, 10):  # 外层循环控制行(1~9)for j in range(1, i + 1):  # 内层循环控制列,j <= iprint(f"{j}x{i}={j*i}", end="\t")  # 使用制表符对齐输出print()  # 每一行结束后换行
    

    ✅ 输出结果:

    1x1=1
    1x2=2   2x2=4
    1x3=3   2x3=6   3x3=9
    1x4=4   2x4=8   3x4=12  4x4=16
    1x5=5   2x5=10  3x5=15  4x5=20  5x5=25
    1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36
    1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49
    1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64
    1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81
    
  2. 写一个程序统计列表 [90, 87, 76, 65, 88] 中大于80的成绩数量。

    # 成绩列表
    scores = [90, 87, 76, 65, 88]# 计数器
    count = 0# 遍历列表
    for score in scores:if score > 80:count += 1# 输出结果
    print(f"大于80的成绩有 {count} 个")
    

    ✅ 输出结果:

    大于80的成绩有 3

    💡 补充技巧:使用列表推导式也可以实现同样的功能:

    scores = [90, 87, 76, 65, 88]
    count = len([s for s in scores if s > 80])
    print(f"大于80的成绩有 {count} 个")
    
  3. 编写一个循环,要求用户输入学生姓名,直到输入”q”为止,并将所有学生姓名存储在列表中。

    # 创建一个空列表用于存储学生姓名
    students = []print("请输入学生姓名(输入 'q' 退出):")while True:name = input("学生姓名:")if name.lower() == 'q':break  # 如果输入的是 q(不区分大小写),退出循环students.append(name)# 输出所有学生姓名
    print("\n录入的学生姓名如下:")
    for student in students:print(student)
    

    ✅ 示例运行:

    请输入学生姓名(输入 'q' 退出):
    学生姓名:张三
    学生姓名:李四
    学生姓名:王五
    学生姓名:q录入的学生姓名如下:
    张三
    李四
    王五
    

💡 实战项目复盘建议

你已经做出了一个简化版“学生管理系统”,这是你本周的里程碑成果,建议你:
✅ 自己从0再写一次,不参考,锻炼记忆和思维。
✅ 尝试给系统增加功能(如:数据统计、分页查看等)。
✅ 如果你有兴趣,可以加一个简单的登录验证系统。

import math# 登录验证信息
USERNAME = "admin"
PASSWORD = "123456"# 学生列表
students = []# 登录验证函数
def login():print("=== 学生管理系统登录 ===")for _ in range(3):username = input("用户名:")password = input("密码:")if username == USERNAME and password == PASSWORD:print("✅ 登录成功!\n")return Trueelse:print("❌ 用户名或密码错误,请重试。\n")print("⚠️ 登录失败,程序退出。")return False# 添加学生
def add_student():name = input("请输入姓名:")age = int(input("请输入年龄:"))gender = input("请输入性别(男/女):")score = float(input("请输入成绩:"))students.append({"name": name, "age": age, "gender": gender, "score": score})print("✅ 学生添加成功。\n")# 查看学生(分页)
def view_students():if not students:print("⚠️ 暂无学生记录。\n")returnpage_size = 3total = len(students)pages = math.ceil(total / page_size)while True:try:page = int(input(f"请输入要查看的页码(1~{pages}):"))if 1 <= page <= pages:start = (page - 1) * page_sizeend = start + page_sizeprint(f"\n📄 第 {page} 页(共 {pages} 页):")for i, stu in enumerate(students[start:end], start=1):print(f"{start+i}. 姓名:{stu['name']} | 年龄:{stu['age']} | 性别:{stu['gender']} | 成绩:{stu['score']}")print()breakelse:print("⚠️ 页码输入错误!")except ValueError:print("⚠️ 请输入数字页码!")# 查询学生
def search_student():keyword = input("请输入要查询的学生姓名关键词:")found = [stu for stu in students if keyword in stu["name"]]if found:print("\n🔍 查询结果:")for stu in found:print(f"姓名:{stu['name']} | 年龄:{stu['age']} | 性别:{stu['gender']} | 成绩:{stu['score']}")else:print("⚠️ 未找到相关学生。\n")# 删除学生
def delete_student():name = input("请输入要删除的学生姓名:")for stu in students:if stu["name"] == name:students.remove(stu)print("✅ 学生删除成功。\n")returnprint("⚠️ 未找到该学生。\n")# 统计信息
def statistics():if not students:print("⚠️ 暂无学生记录。\n")returntotal = len(students)avg = sum([s["score"] for s in students]) / totalpassed = len([s for s in students if s["score"] >= 60])print(f"\n📊 当前共 {total} 名学生")print(f"🎯 平均成绩:{avg:.2f}")print(f"✅ 及格人数:{passed},及格率:{(passed/total)*100:.1f}%\n")# 主程序
def main():if not login():returnwhile True:print("==== 学生信息管理系统 ====")print("1. 添加学生")print("2. 查看所有学生(分页)")print("3. 查询学生")print("4. 删除学生")print("5. 统计信息")print("6. 退出系统")choice = input("请输入操作编号(1-6):")if choice == '1':add_student()elif choice == '2':view_students()elif choice == '3':search_student()elif choice == '4':delete_student()elif choice == '5':statistics()elif choice == '6':print("👋 退出系统,再见!")breakelse:print("⚠️ 无效的选项,请重新输入。\n")# 启动程序
if __name__ == "__main__":main()

相关文章:

  • 电位滴定仪测定锂电池正极材料残余碱含量
  • 探索Dify-LLM:构建自定义大模型应用的高效平台
  • docker中多个容器相互访问的端口问题
  • MSMQ消息队列》》Rabbit MQ》》集群
  • Linux进程调度的理解
  • chown修改不成功的解决方案
  • 苹果企业签名有什么限制
  • 9.安卓逆向2-frida hook技术-frida基本使用-frida-ps指令
  • deepseek辅助编写的支持gmp高精度运算duckdb客户端
  • 二重积分 面积微元 微小矩形 dxdy 微小扇形 r * drdθ
  • chili3d 笔记15 生成投影工程图
  • 【MySQL】第12节|MySQL 8.0 主从复制原理分析与实战(二)
  • 基于BERT和GPT2的实现来理解Transformer的结构和原理
  • UART通信HAL库API
  • Pydantic 是一个 Python 库,核心是做数据验证、设置管理和数据转换
  • 知行之桥如何将消息推送到钉钉群?
  • php中配置variables_order详解
  • 监控 Oracle Cloud 负载均衡器:使用 Applications Manager 释放最佳性能
  • 使用Nginx + Keepalived配置实现Web站点高可用方案
  • UE5 编辑器工具蓝图
  • 网络架构分为几层/seo提供服务
  • 一般通过什么渠道了解防灾减灾知识/seo顾问培训
  • 网站建设及网络营销/推广咨询服务公司
  • 免费建站建设网站搭建网站/电商运营入门基础知识
  • 齐河网站建设/线上推广app
  • 网站怎样做seo推广/站长友情链接