App下載

程序員的浪漫!用Python實(shí)現(xiàn)表白代碼!

猿友 2021-07-26 10:48:43 瀏覽數(shù) (15209)
反饋

大家都說(shuō)程序員土,不懂得浪漫,其實(shí)這都是偏見(jiàn)。程序員也可以很浪漫。接下來(lái)小編就帶來(lái)一些python表白代碼,讓我們來(lái)看看程序員能有多浪漫吧(學(xué)習(xí)需求:會(huì)海龜繪圖法和懂一點(diǎn)字符畫(huà)生成方式:主要是PIL庫(kù)的使用)!

一、浪漫玫瑰花

浪漫玫瑰花

實(shí)現(xiàn)代碼:

from turtle import *
import time
 
setup(1000,800,0,0)
speed(0)
penup()
seth(90)
fd(340)
seth(0)
pendown()
 
speed(5)
begin_fill()
fillcolor('red')
circle(50,30)
 
for i in range(10):
    fd(1)
    left(10)
 
circle(40,40)
 
for i in range(6):
    fd(1)
    left(3)
 
circle(80,40)
 
for i in range(20):
    fd(0.5)
    left(5)
 
circle(80,45)
 
for i in range(10):
    fd(2)
    left(1)
 
circle(80,25)
 
for i in range(20):
    fd(1)
    left(4)
 
circle(50,50)
 
time.sleep(0.1)
 
circle(120,55)
 
speed(0)
 
seth(-90)
fd(70)
 
right(150)
fd(20)
 
left(140)
circle(140,90)
 
left(30)
circle(160,100)
 
left(130)
fd(25)
 
penup()
right(150)
circle(40,80)
pendown()
 
left(115)
fd(60)
 
penup()
left(180)
fd(60)
pendown()
 
end_fill()
 
right(120)
circle(-50,50)
circle(-20,90)
 
speed(1)
fd(75)
 
speed(0)
circle(90,110)
 
penup()
left(162)
fd(185)
left(170)
pendown()
circle(200,10)
circle(100,40)
circle(-52,115)
left(20)
circle(100,20)
circle(300,20)
speed(1)
fd(250)
 
penup()
speed(0)
left(180)
fd(250)
circle(-300,7)
right(80)
circle(200,5)
pendown()
 
left(60)
begin_fill()
fillcolor('green')
circle(-80,100)
right(90)
fd(10)
left(20)
circle(-63,127)
end_fill()
 
penup()
left(50)
fd(20)
left(180)
 
pendown()
circle(200,25)
 
penup()
right(150)
 
fd(180)
 
right(40)
pendown()
begin_fill()
fillcolor('green')
circle(-100,80)
right(150)
fd(10)
left(60)
circle(-80,98)
end_fill()
 
penup()
left(60)
fd(13)
left(180)
 
pendown()
speed(1)
circle(-200,23)
 
exitonclick()

什么?只有玫瑰花太單調(diào)?那再給你來(lái)幾個(gè)愛(ài)心夠不夠?

二、浪漫玫瑰加愛(ài)心

玫瑰加愛(ài)心

實(shí)現(xiàn)代碼:

import turtle
import time
import random
 
# 愛(ài)心函數(shù)
def yellowheart(x, y, liftx):
 
    turtle.pensize(3)
    turtle.speed(10)
    turtle.color("red", "red")
    turtle.up()
    turtle.goto(x, y)
    turtle.down()
    turtle.begin_fill()
    turtle.left(liftx)
    turtle.fd(80)
    turtle.circle(-40, 180)
    turtle.left(90)
    turtle.circle(-40, 180)
    turtle.left(0)
    turtle.fd(80)
    turtle.end_fill()
 
 
def rose():
    turtle.speed(0)  # 畫(huà)筆移動(dòng)的速度
    #turtle.tracer(False)
    # 設(shè)置初始位置
    turtle.penup()  # 提起畫(huà)筆
    turtle.left(90)  # 逆時(shí)針轉(zhuǎn)動(dòng)畫(huà)筆90度
    turtle.fd(200)
    turtle.pendown()  # 放下畫(huà)筆,移動(dòng)畫(huà)筆即開(kāi)始繪制
    turtle.right(90)
    # 設(shè)置畫(huà)筆的大小
    turtle.pensize(2)
 
    # 花蕊
 
    turtle.fillcolor("red")  # 填充顏色
    turtle.begin_fill()  # 開(kāi)始填充
    turtle.circle(10, 180)
    turtle.circle(25, 110)
    turtle.left(50)
    turtle.circle(60, 45)
    turtle.circle(20, 170)
    turtle.right(24)
    turtle.fd(30)
    turtle.left(10)
    turtle.circle(30, 110)
    turtle.fd(20)
    turtle.left(40)
    turtle.circle(90, 70)
    turtle.circle(30, 150)
    turtle.right(30)
    turtle.fd(15)
    turtle.circle(80, 90)
    turtle.left(15)
    turtle.fd(45)
    turtle.right(165)
    turtle.fd(20)
    turtle.left(155)
    turtle.circle(150, 80)
    turtle.left(50)
    turtle.circle(150, 90)
    turtle.end_fill()  # 結(jié)束填充
 
    # 右側(cè)花瓣
    turtle.left(150)
    turtle.circle(-90, 70)
    turtle.left(20)
    turtle.circle(75, 105)
    turtle.setheading(60)
    turtle.circle(80, 98)
    turtle.circle(-90, 40)
 
    # 左側(cè)花瓣
    turtle.left(180)
    turtle.circle(90, 40)
    turtle.circle(-80, 98)
    turtle.setheading(-83)
 
    # 左側(cè)葉子
    turtle.fd(30)
    turtle.left(90)
    turtle.fd(25)
    turtle.left(45)
    turtle.fillcolor("green")
    turtle.begin_fill()
    turtle.circle(-80, 90)
    turtle.right(90)
    turtle.circle(-80, 90)
    turtle.end_fill()
 
    turtle.right(135)
    turtle.fd(60)
    turtle.left(180)
    turtle.fd(85)
    turtle.left(90)
    turtle.fd(80)
 
    # 右側(cè)葉子
    turtle.right(90)
    turtle.right(45)
    turtle.fillcolor("green")
    turtle.begin_fill()
    turtle.circle(80, 90)
    turtle.left(90)
    turtle.circle(80, 90)
    turtle.end_fill()
 
    turtle.left(135)
    turtle.fd(60)
    turtle.left(180)
    turtle.fd(60)
    turtle.right(90)
    turtle.circle(200, 50)  # 畫(huà)一個(gè)圓 200 是半徑,50 是弧度
 
    time.sleep(1)
    # turtle.tracer(False)
    #turtle.pensize(3)
    #turtle.speed(0)
    turtle.color("red", "red")
    turtle.up()
    turtle.goto(-230, 50)
    turtle.down()
    turtle.begin_fill()
    turtle.left(180)
    turtle.fd(80)
    turtle.circle(-40, 180)
    turtle.left(90)
    turtle.circle(-40, 180)
    turtle.left(0)
    turtle.fd(80)
    turtle.end_fill()
 
    time.sleep(1)
    # turtle.tracer(False)
    #turtle.pensize(3)
    #turtle.speed(0)
    turtle.color("red", "red")
    turtle.up()
    turtle.goto(-230, -80)
    turtle.down()
    turtle.begin_fill()
    turtle.left(-30)
    turtle.fd(80)
    turtle.circle(-40, 180)
    turtle.left(90)
    turtle.circle(-40, 180)
    turtle.left(0)
    turtle.fd(80)
    turtle.end_fill()
 
    time.sleep(1)
    # turtle.tracer(False)
    # turtle.pensize(3)
    # turtle.speed(0)
    turtle.color("red", "red")
    turtle.up()
    turtle.goto(-130, -180)
    turtle.down()
    turtle.begin_fill()
    turtle.left(-80)
    turtle.fd(80)
    turtle.circle(-40, 180)
    turtle.left(90)
    turtle.circle(-40, 180)
    turtle.left(0)
    turtle.fd(80)
    turtle.end_fill()
 
    time.sleep(1)
    # turtle.tracer(False)
    # turtle.pensize(3)
    # turtle.speed(0)
    turtle.color("red", "red")
    turtle.up()
    turtle.goto(200, -200)
    turtle.down()
    turtle.begin_fill()
    turtle.left(-90)
    turtle.fd(80)
    turtle.circle(-40, 180)
    turtle.left(90)
    turtle.circle(-40, 180)
    turtle.left(0)
    turtle.fd(80)
    turtle.end_fill()
 
    time.sleep(1)
    # turtle.tracer(False)
    # turtle.pensize(3)
    # turtle.speed(0)
    turtle.color("red", "red")
    turtle.up()
    turtle.goto(200, 50)
    turtle.down()
    turtle.begin_fill()
    turtle.left(90)
    turtle.fd(80)
    turtle.circle(-40, 180)
    turtle.left(90)
    turtle.circle(-40, 180)
    turtle.left(0)
    turtle.fd(80)
    turtle.end_fill()
 
 
def figure1():
    turtle.reset()
    turtle.tracer(False)
    rose()
    yellowheart(-230, 50, 180)  # 左一
    #time.sleep(2)
 
def figure2():
    # turtle.reset()
    turtle.tracer(False)
    rose()
    yellowheart(-230, -80, -30)     # 左二
    # time.sleep(2)
 
def figure3():
    turtle.reset()
    turtle.tracer(False)
    rose()
    yellowheart(-130, -180, -30)    # 左三
    # time.sleep(2)
 
def figure4():
    turtle.reset()
    turtle.tracer(False)
    rose()
    yellowheart(200, 50, 90)        # 右一
    # ime.sleep(2)
 
def figure5():
    turtle.reset()
    turtle.tracer(False)
    rose()
    yellowheart(200, -200, -90)  # 右二
    # time.sleep(2)
 
if __name__ == "__main__":
    rose()
    # figure1()
    #
    # yellowheart(-230, -80, -30)  # 左二
    # 不讓自動(dòng)退出,放在程序的最后一行
    # 不然畫(huà)畫(huà)結(jié)束后會(huì)自動(dòng)退出
    turtle.done()
coding:utf-8

三、心心相印

心心相印

實(shí)現(xiàn)代碼:

from turtle import *
from time import sleep
def go_to(x, y):
    up()
    goto(x, y)
    down()
def small_Circle(size):  # 函數(shù)用于繪制心的小圓
    speed(10)
    for i in range(210):
        forward(size)
        right(0.786)
def big_Circle(size):  # 函數(shù)用于繪制心的大圓
    speed(10)
    for i in range(150):
        forward(size)
        right(0.3)
def line(size):
    speed(10)
    forward(51 * size)
def heart(x, y, size):
    go_to(x, y)
    left(150)
    begin_fill()
    line(size)
    big_Circle(size)
    small_Circle(size)
    left(120)
    small_Circle(size)
    big_Circle(size)
    line(size)
    end_fill()
def main():
    pensize(2)
    color('red', 'pink')
    getscreen().tracer(1, 0)
    heart(100, 0, 0.7)
    go_to(80, 70)
    write("先生", font=("楷體", 18, "normal"))
    setheading(0)
    heart(-80, -100, 1)
    go_to(-110, 15)
    write("小姐", font=("宋體", 20, "normal"))
    go_to(40, -80)
    write("三生有幸遇見(jiàn)你!", move=True, align="left", font=("arial", 22, "italic"))
    done()
main()

四、粉嫩愛(ài)心

粉嫩愛(ài)心

實(shí)現(xiàn)代碼:

'''不正經(jīng)愛(ài)心'''
#coding=utf-8
import turtle
import time
 
 
def draw_circle():
    for i in range(400):
        turtle.right(0.5)
        turtle.forward(1)
 
 
def draw_love():
    #    turtle.color('red','darkred')
    #    turtle.pensize(1)
    turtle.pen(fillcolor="pink", pencolor="red", pensize=8)
    turtle.speed(2000)
    turtle.goto(0, 0)
    turtle.begin_fill()
    turtle.left(140)
    turtle.forward(224)
    draw_circle()
    turtle.left(120)
    draw_circle()
    turtle.forward(224)
    turtle.end_fill()
    turtle.write("I Love you")
    time.sleep(2)
    turtle.up()
    turtle.goto(150, 20)
    turtle.color('black')
    turtle.write('縱然萬(wàn)劫不復(fù),縱然相思入骨,我待你依舊如初!', font=("微軟雅黑", 18, "normal"))
    time.sleep(2)
 
 
def draw_abc():
    turtle.fillcolor("pink")
    turtle.pencolor("red")
    turtle.pensize(10)
    turtle.speed(1)
    turtle.up()
    turtle.goto(0, -50)
    turtle.down()
    turtle.begin_fill()
    turtle.circle(45)
    turtle.end_fill()
    time.sleep(2)
 
 
def word():
    turtle.up()
    turtle.goto(-100, 200)
    turtle.color("red")
    turtle.pensize(4)
    #   turtle.down()
    turtle.write('寶貝,5.20快樂(lè)!', font=("隸書(shū)", 18, "bold"))
    time.sleep(10)
 
 
draw_love()
draw_abc()
word()

五、丘比特一鍵穿心

丘比特一箭穿心

程序代碼:

import turtle as t
t.color('red','pink')
t.begin_fill()
t.width(5)
t.left(135)
t.fd(100)
t.right(180)
t.circle(50,-180)
t.left(90)
t.circle(50,-180)
t.right(180)
t.fd(100)
t.pu()
t.goto(50,-30)
t.pd()
t.right(90)
t.fd(100)
t.right(180)
t.circle(50,-180)
t.left(90)
t.circle(50,-180)
t.right(180)
t.fd(100)
t.end_fill()
t.hideturtle()
t.pu()
t.goto(250,-70)
t.pd()
t.color('black')
t.width(5)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(145)
t.fd(20)
t.left(145)
t.fd(50)
t.fd(-50)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(145)
t.fd(20)
t.left(145)
t.fd(50)
t.fd(-50)
t.left(70)
t.fd(50)
t.fd(-50)
t.left(145)
t.width(3)
t.fd(220)
t.right(90)
t.pu()
t.fd(10)
t.pd()
t.left(90)
t.circle(10,180)
t.circle(10,-90)
t.right(90)
t.fd(-10)
t.pu()
t.fd(90)
t.left(90)
t.fd(10)
t.left(90)
t.pd()
t.circle(10,180)
t.circle(10,-90)
t.left(90)
t.fd(100)
t.begin_fill()
t.left(30)
t.fd(15)
t.right(35)
t.fd(50)
t.right(150)
t.fd(50)
t.right(62)
t.fd(25)
t.end_fill()
t.done()

六、發(fā)射愛(ài)心小人

發(fā)射愛(ài)心小人

實(shí)現(xiàn)代碼:

# 2.14
from turtle import *
from time import sleep
 
 
def go_to(x, y):
    up()
    goto(x, y)
    down()
 
 
def head(x, y, r):
    go_to(x, y)
    speed(1)
    circle(r)
    leg(x, y)
 
 
def leg(x, y):
    right(90)
    forward(180)
    right(30)
    forward(100)
    left(120)
    go_to(x, y - 180)
    forward(100)
    right(120)
    forward(100)
    left(120)
    hand(x, y)
 
 
def hand(x, y):
    go_to(x, y - 60)
    forward(100)
    left(60)
    forward(100)
    go_to(x, y - 90)
    right(60)
    forward(100)
    right(60)
    forward(100)
    left(60)
    eye(x, y)
 
 
def eye(x, y):
    go_to(x - 50, y + 130)
    right(90)
    forward(50)
    go_to(x + 40, y + 130)
    forward(50)
    left(90)
 
 
def big_Circle(size):
    speed(20)
    for i in range(150):
        forward(size)
        right(0.3)
 
 
def line(size):
    speed(1)
    forward(51 * size)
 
 
def small_Circle(size):
    speed(10)
    for i in range(210):
        forward(size)
        right(0.786)
 
 
def heart(x, y, size):
    go_to(x, y)
    left(150)
    begin_fill()
    line(size)
    big_Circle(size)
    small_Circle(size)
    left(120)
    small_Circle(size)
    big_Circle(size)
    line(size)
    end_fill()
 
 
def main():
    pensize(2)
    color('red', 'pink')
    head(-120, 100, 100)
    heart(250, -80, 1)
    go_to(200, -300)
    write("To: 送給智慧與美貌并存的小仙女!", move=True, align="left", font=("楷體", 20, "normal"))
    done()
 
main()

七、浪漫動(dòng)態(tài)櫻花樹(shù)

動(dòng)態(tài)櫻花樹(shù)

實(shí)現(xiàn)代碼:

import turtle as T
import random
import time
 
# 畫(huà)櫻花的軀干(60,t)
def Tree(branch, t):
    time.sleep(0.0005)
    if branch > 3:
        if 8 <= branch <= 12:
            if random.randint(0, 2) == 0:
                t.color('snow')  # 白
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 3)
        elif branch < 8:
            if random.randint(0, 1) == 0:
                t.color('snow')
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 2)
        else:
            t.color('sienna')  # 赭(zhě)色
            t.pensize(branch / 10)  # 6
        t.forward(branch)
        a = 1.5 * random.random()
        t.right(20 * a)
        b = 1.5 * random.random()
        Tree(branch - 10 * b, t)
        t.left(40 * a)
        Tree(branch - 10 * b, t)
        t.right(20 * a)
        t.up()
        t.backward(branch)
        t.down()
 
# 掉落的花瓣
def Petal(m, t):
    for i in range(m):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        t.up()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.down()
        t.color('lightcoral')  # 淡珊瑚色
        t.circle(1)
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)
 
# 繪圖區(qū)域
t = T.Turtle()
# 畫(huà)布大小
w = T.Screen()
t.hideturtle()  # 隱藏畫(huà)筆
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat')  # wheat小麥
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
 
# 畫(huà)櫻花的軀干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

八、專屬心形詞云

詞云

實(shí)現(xiàn)代碼:

from wordcloud import WordCloud
import PIL.Image as image
import numpy as np
import jieba
 
 
# 分詞
def trans_CN(text):
    # 接收分詞的字符串
    word_list = jieba.cut(text)
    # 分詞后在單獨(dú)個(gè)體之間加上空格
    result = " ".join(word_list)
    return result
 
# 要讀取的txt文本
with open("love.txt", encoding="utf-8") as fp:
    text = fp.read()
    # print(text)
    # 將讀取的中文文檔進(jìn)行分詞
    text = trans_CN(text)
    mask = np.array(image.open("love.png"))     #添加心形圖片
    wordcloud = WordCloud(
        # 添加遮罩層
        mask=mask,
        # 生成中文字的字體,必須要加,不然看不到中文
        font_path="C:WindowsFontsSTXINGKA.TTF"
    ).generate(text)
    image_produce = wordcloud.to_image()
    image_produce.show()

九、女朋友畫(huà)像字符畫(huà)

> 字符畫(huà)

實(shí)現(xiàn)代碼:

from PIL
import Image, ImageDraw, ImageFont
def draw(pic, draw_text):
    img = cv2.imread(pic)
blank = Image.new("RGB", [img.shape[1],
    img.shape[0]
], "white")
drawObj = ImageDraw.Draw(blank)
n = 10
m = 9
font = ImageFont.truetype(font_path,
    size = m)
for i in range(0, img.shape[0], n):
    for j in range(0, img.shape[1], n):
    drawObj.text(
        [j, i],
        draw_text[int(j / n) % len(draw_text)],
        fill = (img[i][j][2], img[i][j][1],
            img[i][j][0]),
        font = font
    )
blank.save('img_' + pic)
draw('1.jpg', "我愛(ài)你")

 注:以上相關(guān)代碼都不是小編寫(xiě)的,小編覺(jué)得他們的思路是很不錯(cuò)的,但是觀感并不是那么的如意,所以小伙伴們要嘗試這種方式的話建議在此基礎(chǔ)上進(jìn)行代碼修改以爭(zhēng)取更好的樣式展現(xiàn)。

到此這篇python表白代碼介紹的文章就介紹到這了,更多有趣的Python代碼可以搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。

3 人點(diǎn)贊