# GESP等级：二级 | GESP Python 二级考点
"""
09_字符串 / 第1节_字符串索引切片
实操练习（共3题，满分100分）
"""

print("=" * 50)
print("第1节 实操练习 —— 字符串索引、切片、拼接、重复")
print("=" * 50)
print()

# ==========================================
# 第1题：填空 —— 索引结果（40分）
# ==========================================
print("【第1题】填空 —— 写出索引结果（每空10分，共40分）")
print("-" * 50)

s = "Hello World"
print(f"已知 s = '{s}'")
print()

# 请在下方 ____ 处填入正确结果

# 第1空：s[0] = ?
answer1 = s[0]  # 你的代码
print(f"① s[0] = {answer1}")   # 预期: 'H'

# 第2空：s[-1] = ?
answer2 = s[-1]  # 你的代码
print(f"② s[-1] = {answer2}")  # 预期: 'd'

# 第3空：s[6] = ?
answer3 = s[6]  # 你的代码
print(f"③ s[6] = {answer3}")   # 预期: 'W'

# 第4空：s[-5] = ?
answer4 = s[-5]  # 你的代码
print(f"④ s[-5] = {answer4}")  # 预期: 'W'

print()
print("第1题完成！验证：答案应依次为 H, d, W, W")
print()

# ==========================================
# 第2题：切片提取信息（30分）
# ==========================================
print("【第2题】切片 —— 提取指定内容（每空10分，共30分）")
print("-" * 50)

text = "Python Programming"
print(f"已知 text = '{text}'")
print()

# 要求1：用切片取出 "Python"
slice1 = text[0:6]  # 你的代码
print(f"① 取出 'Python' → '{slice1}'")

# 要求2：用切片取出 "Programming"
slice2 = text[7:]   # 你的代码
print(f"② 取出 'Programming' → '{slice2}'")

# 要求3：用切片反转整个字符串
slice3 = text[::-1]  # 你的代码
print(f"③ 反转 → '{slice3}'")

print()
print("第2题完成！")
print()

# ==========================================
# 第3题：用 "*" * n 画字符画（30分）
# ==========================================
print("【第3题】字符画 —— 用字符串重复画图形（每题10分，共30分）")
print("-" * 50)

# 要求1：打印一条 30 个星号组成的分隔线
print("① 30个星号的分隔线：")
print("*" * 30)  # 你的代码
print()

# 要求2：用 "*" 打印一个直角三角形（4行）
#      *
#     **
#    ***
#   ****
print("② 直角三角形（4行）：")
for i in range(1, 5):
    print(" " * (4 - i) + "*" * i)  # 你的代码
print()

# 要求3：打印一个 5x5 的棋盘边框（用 "#" 和 " "）
#   #######
#   #     #
#   #     #
#   #     #
#   #######
print("③ 5x5 棋盘边框：")
print("#" * 7)
for _ in range(3):
    print("#" + " " * 5 + "#")
print("#" * 7)

print()
print("第3题完成！")
print()

# ==========================================
print("=" * 50)
print("所有实操练习完成！")
print("记忆钩子：字符串跟列表一样能索引切片拼接重复但不可变")
print("=" * 50)
