微信公众号上看到一篇CSDN的《啥是佩奇,Python告诉你!》文章,感觉挺有意思的,然后就动手自己琢磨画

如下是佩奇完成后的样子

xiaozhupeiqi2019-01-23 20-41.gif

代码如下

#! -*- coding:utf-8 -*-


import turtle as t


def nose(x, y):
    t.penup()
    t.goto(x, y)
    t.setheading(40)
    t.penup()
    t.begin_fill()
    t.pencolor(255,155,192)
    t.fd(40)
    t.setheading(140)
    t.pendown()
    a = 0.7
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.05
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        else:
            a = a - 0.05
            t.lt(3)
            t.fd(a)
    t.end_fill()

    t.penup()
    t.setheading(-153)
    t.fd(37)
    t.begin_fill()
    t.color(255,105,180)
    t.pendown()
    t.circle(5, 360)
    t.end_fill()

    t.penup()
    t.setheading(-40)
    t.fd(22)
    t.begin_fill()
    t.color(255,105,180)
    t.pendown()
    t.circle(5, 360)
    t.end_fill()


def head(x, y):
    t.penup()
    t.goto(x, y)
    t.setheading(0)
    t.pendown()
    t.begin_fill()
    t.color((255, 155, 192), "pink")
    t.setheading(180)
    t.circle(310,-30)
    t.circle(110,-70)
    t.circle(90, -50)
    t.circle(110,-70)
    t.circle(70,-90)
    t.setheading(150)
    t.circle(-300,17)
    t.setheading(-39)
    a = 0.7
    for i in range(60):
        if 0 <= i < 30 or 60 <= i < 90:
            a = a + 0.05
            t.lt(3)  # 向左转3度
            t.fd(a)  # 向前走a的步长
        else:
            a = a - 0.05
            t.lt(3)
            t.fd(a)
    t.end_fill()


def ear(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color((255, 155, 192), "pink")
    t.begin_fill()
    t.setheading(115)
    t.circle(-35, 58)
    t.circle(-15, 140)
    t.circle(-55, 38)
    t.setheading(160)
    t.circle(-300,5)
    t.end_fill()

    t.penup()
    t.setheading(-25)
    t.fd(53)
    t.pendown()
    t.begin_fill()
    t.setheading(88)
    t.circle(-40, 58)
    t.circle(-15, 140)
    t.circle(-55, 36)
    t.setheading(145)
    t.circle(-300,4)
    t.end_fill()


def eye(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.fillcolor(255,255,255)
    t.begin_fill()
    t.circle(15, 360)
    t.end_fill()
    t.penup()
    t.setheading(-137)
    t.fd(15)
    t.color(0,0,0)
    t.pendown()
    t.circle(3.5, 360)

    t.penup()
    t.setheading(-40)
    t.fd(50)
    t.pendown()
    t.pencolor(255,155,192)
    t.fillcolor(255,255,255)
    t.begin_fill()
    t.circle(15, 360)
    t.end_fill()
    t.penup()
    t.setheading(-128)
    t.fd(-15)
    t.color(0, 0, 0)
    t.pendown()
    t.circle(3.5, 360)


def cheek(x, y):
    t.penup()
    t.color((238,130,238), "Violet")
    t.goto(x, y)
    t.pendown()
    t.begin_fill()
    t.setheading(0)
    t.circle(30)
    t.end_fill()


def mouth(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.setheading(-80)
    t.circle(30, 40)
    t.circle(40, 100)


def body(x, y):
    t.penup()
    t.goto(x, y)
    t.pencolor(255,0,0)
    t.fillcolor(250,128,114)
    t.pendown()
    t.begin_fill()
    t.setheading(-130)
    t.circle(250, 20)
    t.circle(400, 22)
    t.setheading(0)
    t.fd(280)
    t.setheading(91)
    t.circle(400, 20)
    t.circle(300, 19)
    t.setheading(-140)
    t.pencolor(255, 155, 192)
    t.circle(-90, 40)
    t.setheading(-178)
    t.circle(-120, 40)
    t.end_fill()


def arm(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.pensize(10)
    t.setheading(-165)
    t.pencolor(255, 155, 192)
    t.circle(300, 20)
    t.penup()
    t.setheading(92)
    t.fd(20)
    t.pendown()
    t.setheading(-15)
    t.circle(100,10)
    t.setheading(-95)
    t.circle(100,13)

    t.penup()
    t.setheading(9)
    t.fd(275)
    t.pendown()
    t.setheading(-12)
    t.circle(-300, 21)
    t.penup()
    t.setheading(-160)
    t.fd(20)
    t.pendown()
    t.setheading(93)
    t.circle(100,13)
    t.setheading(15)
    t.circle(100, 15)


def ham(x, y):
    t.penup()
    t.goto(x, y)
    t.pencolor(255, 155, 192)
    t.pensize(10)
    t.pendown()
    t.setheading(-90)
    t.fd(35)

    t.penup()
    t.setheading(0)
    t.fd(120)
    t.pendown()
    t.setheading(90)
    t.fd(35)


def foot(x, y):
    t.penup()
    t.goto(x, y)
    t.pensize(15)
    t.pencolor(0,0,0)
    t.pendown()
    t.setheading(180)
    t.fd(36)

    t.penup()
    t.setheading(0)
    t.fd(156)
    t.pendown()
    t.setheading(180)
    t.fd(36)


def tail(x, y):
    t.penup()
    t.goto(x, y)
    t.pensize(10)
    t.pencolor(255,155,192)
    t.pendown()
    t.setheading(-5)
    t.circle(80,20)
    t.circle(10,260)
    t.circle(20,50)
    t.circle(17,100)


def zhufu(x, y):
    t.penup()
    t.pensize(3)
    t.goto(x, y)
    t.pendown()
    t.pencolor(0,0,255)
    t.right(0)
    t.speed(1)
    t.write("Cyalias 祝大家:猪年 大吉大利,万事如意!", move=True, align="left", font=("Arial", 20, "normal"))
    # arg为要输出的字符串,align代表目前位置相对于字体底部的位置,font为输出的字体


def setting():
    t.pensize(6)
    t.hideturtle()
    t.colormode(255)
    t.color((255,155,192), "pink")
    t.setup(850,650)
    t.speed(10)

def main():
    setting()
    nose(-150,230)
    head(-120,260)
    ear(-23,243)
    eye(-55,240)
    cheek(40,100)
    mouth(-85,120)
    body(-80,54)
    arm(-110,20)
    ham(-60,-175)
    foot(-60,-210)
    tail(130,-120)
    zhufu(-250,290)
    t.done()


if __name__ == '__main__':
    main()

转载的话请留言,并附上转载地址,毕竟我自己也是话了两个晚上才琢磨出这些代码的,谢谢各位了