一篇文章教你用python畫動(dòng)態(tài)愛心表白
初級(jí)畫心
學(xué)Python,感覺你們的都好復(fù)雜,那我來個(gè)簡單的,我是直接把心形看作是一個(gè)正方形+兩個(gè)半圓:
于是這就很簡單了,十行代碼解決:
import turtle as t t.pensize(2) # 筆大小2像素 t.pencolor("red") # 顏色為紅色 t.left(45) # 45度 t.fd(200) # 向前200直線 t.circle(100, 180) # 畫一圓半徑100 弧度180 t.right(90) # 向右90度 t.circle(100, 180) # 再畫一個(gè)圓半徑100 弧度180 t.fd(200) # 直線向前直線200 t.done() # 繪制完成
一行代碼畫心
原代碼
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
拆解了一下這段長串的【一行代碼】,得到如下的多行代碼,實(shí)際運(yùn)行效果一致,代碼如下:
import time words = input('請(qǐng)輸出想要表達(dá)的文字:') #例子:words = "Dear lili, Happy Valentine's Day! Lyon Will Always Love You Till The End! ♥ Forever! ♥" for item in words.split(): #要想實(shí)現(xiàn)打印出字符間的空格效果,此處添加:item = item+' ' letterlist = []#letterlist是所有打印字符的總list,里面包含y條子列表list_X for y in range(12, -12, -1): list_X = []#list_X是X軸上的打印字符列表,里面裝著一個(gè)String類的letters letters = ''#letters即為list_X內(nèi)的字符串,實(shí)際是本行要打印的所有字符 for x in range(-30, 30):#*是乘法,**是冪次方 expression = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 if expression <= 0: letters += item[(x-y) % len(item)] else: letters += ' ' list_X.append(letters) letterlist += list_X print('\n'.join(letterlist)) time.sleep(1.5);
但是,有點(diǎn)太單調(diào)了點(diǎn),來,讓我擼起袖子搞點(diǎn)事情,將代碼簡單改造一下,實(shí)現(xiàn)動(dòng)態(tài)輸出心形的一段話的效果:
改造以后,看上去不錯(cuò)了!效果如下:
代碼如下,喜歡請(qǐng)點(diǎn)贊哦,謝謝❤️?。?/p>
import time words = input('請(qǐng)輸出想要表達(dá)的文字:') for item in words.split(): print('\n'.join([''.join([(item[(x-y) % len(item)] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(12, -12, -1)])) time.sleep(1.5)
其實(shí),像❤️ 這樣類型的顏文字其實(shí)也是可以輸出的,不過格式不是標(biāo)準(zhǔn)的心型,需要自行調(diào)節(jié),大家可以自己嘗試下^_^!
參考:Lyon https://zhuanlan.zhihu.com/p/33816013
總結(jié)
到此這篇關(guān)于教你用python畫動(dòng)態(tài)愛心表白的文章就介紹到這了,更多相關(guān)python畫動(dòng)態(tài)愛心表白內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于多進(jìn)程中APScheduler重復(fù)運(yùn)行的解決方法
今天小編就為大家分享一篇基于多進(jìn)程中APScheduler重復(fù)運(yùn)行的解決方法,具有很好的價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-0720行Python代碼實(shí)現(xiàn)視頻字符化功能
這篇文章主要介紹了20行Python代碼實(shí)現(xiàn)視頻字符化功能,本文通過實(shí)例代碼截圖的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Python中的“_args”和“__kwargs”用法詳解
*args 和 **kwargs 主要?于函數(shù)定義,你可以將不定數(shù)量的參數(shù)傳遞給?個(gè)函數(shù),這篇文章主要介紹了Python中的“_args”和“__kwargs”用法,需要的朋友可以參考下2023-01-01Python實(shí)現(xiàn)獲取域名所用服務(wù)器的真實(shí)IP
本文是給大家分享的使用python獲取到域名所在服務(wù)器的真實(shí)IP,原因是現(xiàn)在很多的網(wǎng)站都使用了CDN,大家很難直接查到域名的服務(wù)器的IP,本文是使用了一個(gè)巧妙的方法,詳情請(qǐng)仔細(xì)看看下文吧2015-10-10jupyter %matplotlib inline報(bào)錯(cuò)TypeError:print_svg()&
在Jupyter Notebook使用matplotlib時(shí)出現(xiàn)TypeError錯(cuò)誤,一般是由于ipython和matplotlib版本不兼容造成的,通過安裝ipympl并將魔法命令替換為%matplotlib ipympl,可以解決這個(gè)問題2024-09-09