风火轮编程的turtle考试题目:割圆术

风火轮编程的turtle考试题目:割圆术

1. 割圆术:
编写程序,画一个半径为200的圆形,然后不断地从键盘通过turtle.numinput命令输入多边形的边数来画圆形的内接正多边形,如:输入3的时候,图形大概是下面这样:
turtle.numinput命令接收两个参数,返回浮点数据,如果调用了这个命令但直接取消,则返回None
以下是参考答案:

import turtle

def draw_polygon(points):
    turtle.penup()
    turtle.goto(points[0])
    turtle.pd()
    for p in points[1:]:
        turtle.goto(p)
    turtle.goto(points[0])
    turtle.pu()
    
r = 200

turtle.penup()
turtle.fd(r)
turtle.left(90)
turtle.pd()
turtle.circle(r)
turtle.pu()
turtle.right(90)
turtle.bk(r)

while True:
    turtle.home()
    cors = []
    n = int(turtle.numinput('提示','边数'))
    if n==None:break
    turtle.fd(r)
    turtle.left(90)
    for i in range(n):
        turtle.circle(r,360/n)
        cors.append(turtle.position())
    draw_polygon(cors)
    

李兴球

李兴球的博客是Python创意编程原创博客