# ===== CodeLab: Python 入门指南 =====
# 来源: https://aoerliang.dpdns.org/articles/python-start
# 以下代码片段按文章出现顺序拼接, 共 6 段

# ----- 片段 1 (bash) -----
python3 --version
# 输出示例: Python 3.12.4

python3 -c "print('Hello, World!')"
# Hello, World!

# ----- 片段 2 (python) -----
name = input("你叫什么名字?")
print(f"你好,{name}!欢迎来到 Python 世界。")

# 计算 1 到 100 的和
total = sum(range(1, 101))
print(f"1+2+...+100 = {total}")

# ----- 片段 3 (python) -----
age = 18            # int
price = 3.99        # float
name = "Ada"        # str
is_ok = True        # bool
scores = [90, 85, 99]  # list 列表
user = {"name": "Ada", "age": 18}  # dict 字典

# ----- 片段 4 (python) -----
for i in range(5):
    if i % 2 == 0:
        print(f"{i} 是偶数")
    else:
        print(f"{i} 是奇数")

while True:
    cmd = input("输入 q 退出: ")
    if cmd == "q":
        break

# ----- 片段 5 (python) -----
def fibonacci(n):
    """返回前 n 个斐波那契数"""
    a, b = 0, 1
    result = []
    for _ in range(n):
        result.append(a)
        a, b = b, a + b
    return result

print(fibonacci(10))  # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

import math
print(math.sqrt(16))  # 4.0

# ----- 片段 6 (python) -----
# 列表推导式:一行搞定循环 + 条件
squares = [x ** 2 for x in range(10)]          # [0, 1, 4, 9, ..., 81]
evens   = [x for x in range(20) if x % 2 == 0] # 只看偶数

# 读取文件(自动处理关闭)
with open("notes.txt", "r", encoding="utf-8") as f:
    content = f.read()

# 写入文件
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("你好,Python!\n")

# 逐行读取
with open("data.csv") as f:
    for line in f:
        print(line.strip())
