# GESP等级:一级 | GESP Python 一级考点
# ============================================
# 实操练习 —— input() + 类型转换 + 格式化
# GESP #18 input()函数  #19 类型转换  #27 格式化输出
#
# 必背口诀:
#   "input 永远给你文字！要做数学？int() 包一下！"
#
# 实操①:input+int+画多边形
# 实操②:input+float+画圆+算周长
# 实操③:格式化输出结果
# ============================================
import turtle

t = turtle.Turtle()
t.shape("turtle")
t.speed(6)

# ============================================
# 实操①:input + int —— 画任意多边形（填空）
# ============================================
print("========== 实操①:画多边形 ==========")

# 填空1:用 input() 获取边数
s = input("请输入边数（3~10）:")

# 填空2:用 int() 转换 —— 不做数学就等着报错！
n = _____

# 填空3:用 input() 获取颜色
color_name = input("请输入颜色（英文）:")

# 填空4:用 input() 获取边长
length = input("请输入边长（如 60）:")
length = _____(length)      # 转成整数

# 填空5:用 input() 获取转角方式（保留或修改）
t.color(color_name)

for i in range(n):
    t.forward(length)
    t.right(360 / n)

print(f"画完了！这是一个 {n} 边形，边长 {length}")

# ============================================
# 实操②:input + float —— 画圆并计算周长
# ============================================
print()
print("========== 实操②:画圆 + 算周长 ==========")

t.penup()
t.goto(0, -150)
t.pendown()

# 填空6:用 input() 获取半径
r_str = input("请输入圆的半径:")

# 填空7:用 float() 转换（半径可能是小数！）
r = _____

# 填空8:计算周长 C = 2 * 圆周率 * r
pi = 3.1416
C = _____

# 填空9:用 print 输出结果
print("圆的半径 =", r)
print("圆的周长 =", C)

# 填空10:用 turtle 画圆
t.circle(r)

print("小乌龟画出了半径", r, "的圆！")

# ============================================
# 实操③:格式化输出 —— f-string
# ============================================
print()
print("========== 实操③:格式化输出 ==========")

# 用 input 获取三个数据
name = input("请输入作品名称:")
sides = input("请输入边数:")
sides = int(sides)
radius = input("请输入圆的半径:")
radius = float(radius)

# 填空11:用 f-string 格式化输出，保留 2 位小数
print(f"========== 作品信息 ==========")
print(f"作品名称:{_____}")
print(f"多边形边数:{_____}")
print(f"圆的半径:{_____}")        # 保留 2 位小数
print(f"圆周长:{2 * 3.1416 * radius:____}")  # 保留 2 位小数

t.penup()
t.goto(-100, -260)
t.pendown()
t.color("purple")
t.write(f"{name} —— 边数{sides}  半径{radius:.2f}", font=("Arial", 16, "normal"))

turtle.done()
