第一周
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 |
综合项目 | 学生信息管理系统 | 字典列表、函数封装、菜单逻辑、保存数据 |
🧠 自我测试题
✅ 基础题
-
写出下面代码的输出结果:
pythonname = "Alice" age = 25 print(f"{name} 明年 {age + 1} 岁")
输出结果为:
pythonAlice 明年 26 岁
-
判断下面语句是否成立,并说明原因:
pythona = 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 分支:
输出结果:
pythonFalse
💬 答案总结:
该语句不成立,因为 b < 15 是 False。and 运算符要求两个条件都为 True 才整体为 True,因此 else 分支被执行,打印输出 False。
- a > 5
-
编写一个程序,输入一个整数,如果大于等于60则输出"及格",否则输出"不及格"。
python# 获取用户输入 score = int(input("请输入成绩(整数):")) # 判断成绩是否及格 if score >= 60: print("及格") else: print("不及格")
-
range(1, 10, 2) 生成了哪些数字?
range(1, 10, 2) 表示从 1 开始,到 小于 10 的数字,每次增加 2,构成一个序列。
pythonrange(start, stop, step)
- start=1:起始值(包含)
- stop=10:终止值(不包含)
- step=2:步长,每次加 2
✅ 生成的数字:
python1, 3, 5, 7, 9
因为:
- 1 是起始 - 加 2 → 3 ✅ - 加 2 → 5 ✅ - 加 2 → 7 ✅ - 加 2 → 9 ✅ - 再加 2 → 11 ❌(超过 stop=10,终止)
📌 输出验证代码:
pythonfor i in range(1, 10, 2): print(i, end=" ")
输出:
python1 3 5 7 9
程序设计题
-
打印九九乘法表(用嵌套循环)
示例: 1x1=1 到 9x9=81
python# 九九乘法表 for i in range(1, 10): # 外层循环控制行(1~9) for j in range(1, i + 1): # 内层循环控制列,j <= i print(f"{j}x{i}={j*i}", end="\t") # 使用制表符对齐输出 print() # 每一行结束后换行
✅ 输出结果:
python1x1=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
-
写一个程序统计列表 [90, 87, 76, 65, 88] 中大于80的成绩数量。
python# 成绩列表 scores = [90, 87, 76, 65, 88] # 计数器 count = 0 # 遍历列表 for score in scores: if score > 80: count += 1 # 输出结果 print(f"大于80的成绩有 {count} 个")
✅ 输出结果:
python大于80的成绩有 3 个
💡 补充技巧:使用列表推导式也可以实现同样的功能:
pythonscores = [90, 87, 76, 65, 88] count = len([s for s in scores if s > 80]) print(f"大于80的成绩有 {count} 个")
-
编写一个循环,要求用户输入学生姓名,直到输入"q"为止,并将所有学生姓名存储在列表中。
python# 创建一个空列表用于存储学生姓名 students = [] print("请输入学生姓名(输入 'q' 退出):") while True: name = input("学生姓名:") if name.lower() == 'q': break # 如果输入的是 q(不区分大小写),退出循环 students.append(name) # 输出所有学生姓名 print("\n录入的学生姓名如下:") for student in students: print(student)
✅ 示例运行:
python请输入学生姓名(输入 'q' 退出): 学生姓名:张三 学生姓名:李四 学生姓名:王五 学生姓名:q 录入的学生姓名如下: 张三 李四 王五
💡 实战项目复盘建议
你已经做出了一个简化版"学生管理系统",这是你本周的里程碑成果,建议你:
✅ 自己从0再写一次,不参考,锻炼记忆和思维。
✅ 尝试给系统增加功能(如:数据统计、分页查看等)。
✅ 如果你有兴趣,可以加一个简单的登录验证系统。
python
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 True
else:
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")
return
page_size = 3
total = 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_size
end = start + page_size
print(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()
break
else:
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")
return
print("⚠️ 未找到该学生。\n")
# 统计信息
def statistics():
if not students:
print("⚠️ 暂无学生记录。\n")
return
total = len(students)
avg = sum([s["score"] for s in students]) / total
passed = 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():
return
while 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("👋 退出系统,再见!")
break
else:
print("⚠️ 无效的选项,请重新输入。\n")
# 启动程序
if __name__ == "__main__":
main()