"""第 1 天学生练习：Windows Python 竞赛环境自检。

运行要求：
1. 先完成 Python、VS Code、Jupyter Notebook 和竞赛软件包安装。
2. 在 VS Code 中选择 Python 3.13.14，再运行本文件。
3. 所有软件包都显示版本号后，完成文末 TODO。
4. 分别使用 VS Code 运行按钮、VS Code 终端和 Windows 终端运行本文件。
"""

import platform
import sys
from importlib.metadata import PackageNotFoundError, version


print("=" * 56)
print("Python 环境")
print("Python 版本：", sys.version.split()[0])
print("解释器路径：", sys.executable)
print("Windows 信息：", platform.platform())
print("系统位数：", platform.architecture()[0])

print("\n第三方包")
required_packages = [
    "notebook",
    "ipykernel",
    "pandas",
    "openpyxl",
    "requests",
    "beautifulsoup4",
    "lxml",
]

missing_packages = []
for package in required_packages:
    try:
        print(f"[已安装] {package:15s} {version(package)}")
    except PackageNotFoundError:
        print(f"[未安装] {package}")
        missing_packages.append(package)

print("\n检查结论")
if missing_packages:
    print("仍需安装：", ", ".join(missing_packages))
    print("请回到课件，使用 py -m pip install ... 安装缺失包。")
else:
    print("基础竞赛环境已经配置完成。")

# TODO 1：把下面文字改成自己的姓名。
student_name = "请填写姓名"

# TODO 2：填写自己的专业或班级。
student_class = "请填写专业或班级"

# TODO 3：写一句本次备赛目标。
study_goal = "请填写备赛目标"

# TODO 4：在下一行上方增加一条以 # 开头的注释。
print("\n学生信息")
print("姓名：", student_name)
print("专业或班级：", student_class)
print("备赛目标：", study_goal)

# 挑战任务：
# 在终端运行 py -0p，把显示的解释器数量和路径写成注释放在本文件末尾。
# 再把本文件的个人信息输出部分复制到 Notebook，使用 Shift + Enter 按单元格运行。
