条件、循环、函数定义 练习

时间:2022-03-24 19:02:41

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式。

对前面的代码进行优化,用for,while,if,def实现:

  1. 画五角星
    import turtle
    for i in range(5):
    turtle.forward(
    100)
    turtle.right(
    144)

     

  2. 画同心圆
    import turtle
    for i in range(5):
    turtle.up()
    turtle.goto(0,
    -20*(1+i))
    turtle.down()
    turtle.circle(
    20*(1+i))

     

  3. 画太阳花
    import turtle
    while True:
    turtle.forward(
    200)
    turtle.left(
    170)
    if(abs(turtle.pos()))<1:
    break

     

  4. 画五个角星
    import turtle
    turtle.speed(
    10)
    turtle.bgcolor(
    'red')

    def goto(x,y):
    turtle.up()
    turtle.goto(x,y)
    turtle.down()

    def draw(r):
    turtle.color(
    'yellow')
    turtle.fillcolor(
    'yellow')
    turtle.begin_fill()
    for i in range(5):
    turtle.forward(r)
    turtle.right(
    144)
    turtle.end_fill()

    goto(
    -550,200)
    draw(
    230)

    goto(
    -260,280)
    turtle.left(
    45)
    draw(
    60)

    goto(
    -165,175)
    turtle.left(
    50)
    draw(
    60)

    goto(
    -185,100)
    turtle.right(
    95)
    draw(
    60)

    goto(
    -260,0)
    turtle.left(
    45)
    draw(
    60)

    turtle.hideturtle()

     

     

  5. 画◇花瓣的太阳花

    import turtle
    def my_lx(brad):
    brad.forward(
    100)
    brad.right(
    45)
    brad.forward(
    100)
    brad.right(
    135)

    def my_art():
    window
    =turtle.Screen()
    window.bgcolor(
    "purple")
    brad
    =turtle.Turtle()
    brad.shape(
    "turtle")
    brad.color(
    "orange")
    brad.speed(
    'fastest')
    for i in range(1,37):
    my_lx(brad)
    my_lx(brad)
    brad.left(
    10)
    brad.right(
    90)
    brad.forward(
    300)
    my_art()