App下載

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

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

大家都說程序員土,不懂得浪漫,其實(shí)這都是偏見。程序員也可以很浪漫。接下來小編就帶來一些python表白代碼,讓我們來看看程序員能有多浪漫吧(學(xué)習(xí)需求:會(huì)海龜繪圖法和懂一點(diǎn)字符畫生成方式:主要是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)?那再給你來幾個(gè)愛心夠不夠?

二、浪漫玫瑰加愛心

玫瑰加愛心

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

import turtle
import time
import random
 
# 愛心函數(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)  # 畫筆移動(dòng)的速度
    #turtle.tracer(False)
    # 設(shè)置初始位置
    turtle.penup()  # 提起畫筆
    turtle.left(90)  # 逆時(shí)針轉(zhuǎn)動(dòng)畫筆90度
    turtle.fd(200)
    turtle.pendown()  # 放下畫筆,移動(dòng)畫筆即開始繪制
    turtle.right(90)
    # 設(shè)置畫筆的大小
    turtle.pensize(2)
 
    # 花蕊
 
    turtle.fillcolor("red")  # 填充顏色
    turtle.begin_fill()  # 開始填充
    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)  # 畫一個(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)退出,放在程序的最后一行
    # 不然畫畫結(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("三生有幸遇見你!", move=True, align="left", font=("arial", 22, "italic"))
    done()
main()

四、粉嫩愛心

粉嫩愛心

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

'''不正經(jīng)愛心'''
#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('縱然萬劫不復(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快樂!', font=("隸書", 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ā)射愛心小人

發(fā)射愛心小人

實(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)櫻花樹

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

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

import turtle as T
import random
import time
 
# 畫櫻花的軀干(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()
# 畫布大小
w = T.Screen()
t.hideturtle()  # 隱藏畫筆
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat')  # wheat小麥
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
 
# 畫櫻花的軀干
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()

九、女朋友畫像字符畫

> 字符畫

實(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', "我愛你")

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

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

3 人點(diǎn)贊