python一些有趣的小程序

python一些有趣的小程序

來自專欄菜鳥學編程

Python 無所不能,有時候做些有趣的小程序,能讓我們的生活更有情調。python程序員也可以浪漫表白,畫個小豬佩琦啥的,開心開心。

誰說程序員就不會浪漫,來來來,用python來實現一些浪漫的事情。

畫個愛心是比較簡單的了:

import turtle as t

t.pensize(2)

t.pencolor("red")

t.left(45)

t.fd(200)

t.circle(100, 180)

t.right(90)

t.circle(100, 180)

t.fd(200)

t.done()

效果如下:

如果需要表白,把表白對象填上

import turtle

import random

def love(x,y):#在(x,y)處畫愛心lalala

lv=turtle.Turtle()

lv.hideturtle()

lv.up()

lv.goto(x,y)#定位到(x,y)

def curvemove():#畫圓弧

for i in range(20):

lv.right(10)

lv.forward(2)

lv.color(red,pink)

lv.speed(10000000)

lv.pensize(1)

#開始畫愛心lalala

lv.down()

lv.begin_fill()

lv.left(140)

lv.forward(22)

curvemove()

lv.left(120)

curvemove()

lv.forward(22)

lv.write("安蜀黍",font=("Arial",12,"normal"),align="center")#寫上表白的人的名字

lv.left(140)#畫完複位

lv.end_fill()

love(100,100)

我們看看是怎麼實現的。

Turtle庫是Python語言中一個很流行的繪製圖像的函數庫,想像一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,它根據一組函數指令的控制,在這個平面坐標系中移動,從而在它爬行的路徑上繪製了圖形。

  1. 運動命令:

    forward(degree) #向前移動距離degree代表距離

    backward(degree) #向後移動距離degree代表距離

    right(degree) #向右移動多少度

    left(degree) #向左移動多少度

    goto(x,y) #將畫筆移動到坐標為x,y的位置

    stamp() #複製當前圖形

    speed(speed) #畫筆繪製的速度範圍[0,10]整數
  2. 畫筆控制命令:

    down() #移動時繪製圖形,預設時也為繪製

    up() #移動時不繪製圖形

    pensize(width) #繪製圖形時的寬度

    color(colorstring) #繪製圖形時的顏色

    fillcolor(colorstring) #繪製圖形的填充顏色

    fill(Ture)

    fill(false)

來畫一個心連心

畫朵玫瑰:

畫個520表白樹吧

畫個小豬佩琦

附上代碼,拿走不謝!

# coding:utf-8

import turtle as t

def nose(x,y):#鼻子

t.pu()

t.goto(x,y)

t.pd()

t.seth(-30)

t.begin_fill()

a=0.4

for i in range(120):

if 0<=i<30 or 60<=i<90:

a=a+0.08

t.lt(3) #向左轉3度

t.fd(a) #向前走a的步長

else:

a=a-0.08

t.lt(3)

t.fd(a)

t.end_fill()

t.pu()

t.seth(90)

t.fd(25)

t.seth(0)

t.fd(10)

t.pd()

t.pencolor(255,155,192)

t.seth(10)

t.begin_fill()

t.circle(5)

t.color(160,82,45)

t.end_fill()

t.pu()

t.seth(0)

t.fd(20)

t.pd()

t.pencolor(255,155,192)

t.seth(10)

t.begin_fill()

t.circle(5)

t.color(160,82,45)

t.end_fill()

def head(x,y):#頭

t.color((255,155,192),"pink")

t.pu()

t.goto(x,y)

t.seth(0)

t.pd()

t.begin_fill()

t.seth(180)

t.circle(300,-30)

t.circle(100,-60)

t.circle(80,-100)

t.circle(150,-20)

t.circle(60,-95)

t.seth(161)

t.circle(-300,15)

t.pu()

t.goto(-100,100)

t.pd()

t.seth(-30)

a=0.4

for i in range(60):

if 0<=i<30 or 60<=i<90:

a=a+0.08

t.lt(3) #向左轉3度

t.fd(a) #向前走a的步長

else:

a=a-0.08

t.lt(3)

t.fd(a)

t.end_fill()

def ears(x,y): #耳朵

t.color((255,155,192),"pink")

t.pu()

t.goto(x,y)

t.pd()

t.begin_fill()

t.seth(100)

t.circle(-50,50)

t.circle(-10,120)

t.circle(-50,54)

t.end_fill()

t.pu()

t.seth(90)

t.fd(-12)

t.seth(0)

t.fd(30)

t.pd()

t.begin_fill()

t.seth(100)

t.circle(-50,50)

t.circle(-10,120)

t.circle(-50,56)

t.end_fill()

def eyes(x,y):#眼睛

t.color((255,155,192),"white")

t.pu()

t.seth(90)

t.fd(-20)

t.seth(0)

t.fd(-95)

t.pd()

t.begin_fill()

t.circle(15)

t.end_fill()

t.color("black")

t.pu()

t.seth(90)

t.fd(12)

t.seth(0)

t.fd(-3)

t.pd()

t.begin_fill()

t.circle(3)

t.end_fill()

t.color((255,155,192),"white")

t.pu()

t.seth(90)

t.fd(-25)

t.seth(0)

t.fd(40)

t.pd()

t.begin_fill()

t.circle(15)

t.end_fill()

t.color("black")

t.pu()

t.seth(90)

t.fd(12)

t.seth(0)

t.fd(-3)

t.pd()

t.begin_fill()

t.circle(3)

t.end_fill()

def cheek(x,y):#腮

t.color((255,155,192))

t.pu()

t.goto(x,y)

t.pd()

t.seth(0)

t.begin_fill()

t.circle(30)

t.end_fill()

def mouth(x,y): #嘴

t.color(239,69,19)

t.pu()

t.goto(x,y)

t. pd()

t.seth(-80)

t.circle(30,40)

t.circle(40,80)

def body(x,y):#身體

t.color("red",(255,99,71))

t.pu()

t.goto(x,y)

t.pd()

t.begin_fill()

t.seth(-130)

t.circle(100,10)

t.circle(300,30)

t.seth(0)

t.fd(230)

t.seth(90)

t.circle(300,30)

t.circle(100,3)

t.color((255,155,192),(255,100,100))

t.seth(-135)

t.circle(-80,63)

t.circle(-150,24)

t.end_fill()

def hands(x,y):#手

t.color((255,155,192))

t.pu()

t.goto(x,y)

t.pd()

t.seth(-160)

t.circle(300,15)

t.pu()

t.seth(90)

t.fd(15)

t.seth(0)

t.fd(0)

t.pd()

t.seth(-10)

t.circle(-20,90)

t.pu()

t.seth(90)

t.fd(30)

t.seth(0)

t.fd(237)

t.pd()

t.seth(-20)

t.circle(-300,15)

t.pu()

t.seth(90)

t.fd(20)

t.seth(0)

t.fd(0)

t.pd()

t.seth(-170)

t.circle(20,90)

def foot(x,y):#腳

t.pensize(10)

t.color((240,128,128))

t.pu()

t.goto(x,y)

t.pd()

t.seth(-90)

t.fd(40)

t.seth(-180)

t.color("black")

t.pensize(15)

t.fd(20)

t.pensize(10)

t.color((240,128,128))

t.pu()

t.seth(90)

t.fd(40)

t.seth(0)

t.fd(90)

t.pd()

t.seth(-90)

t.fd(40)

t.seth(-180)

t.color("black")

t.pensize(15)

t.fd(20)

def tail(x,y):#尾巴

t.pensize(4)

t.color((255,155,192))

t.pu()

t.goto(x,y)

t.pd()

t.seth(0)

t.circle(70,20)

t.circle(10,330)

t.circle(70,30)

def setting(): #參數設置

t.pensize(4)

t.hideturtle()

t.colormode(255)

t.color((255,155,192),"pink")

t.setup(840,500)

t.speed(10)

def main():

setting() #畫布、畫筆設置

nose(-100,100) #鼻子

head(-69,167) #頭

ears(0,160) #耳朵

eyes(0,140) #眼睛

cheek(80,10) #腮

mouth(-20,30) #嘴

body(-32,-8) #身體

hands(-56,-45) #手

foot(2,-177) #腳

tail(148,-155) #尾巴

t.done() #結束

main()

應用程序員的智慧,創造自己的浪漫。請開始你的表演!

如需要源碼,請關注微信公眾號: python愛好部落 並留言


推薦閱讀:

python中的漢諾塔遞歸演算法的具體運算過程是怎樣的?
Python urllib urlretrieve函數解析
為什麼 Python、Ruby 等語言棄用了自增運算符?
2. Add Two Numbers
左手用R右手Python系列8——數據去重與缺失值處理

TAG:Python | Python入門 |