程式猿的浪漫:用python畫動態愛心
初級畫心
學Python,感覺你們的都好複雜,那我來個簡單的,我是直接把心形看作是一個正方形+兩個半圓:
於是這就很簡單了,十行程式碼解決:
-
importturtleast
-
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)
-
# 再畫一個圓半徑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)]))
拆解了一下這段長串的【一行程式碼】,得到如下的多行程式碼,實際執行效果一致,程式碼如下:
-
import time
-
words=input('請輸出想要表達的文字:')
-
#例子:words = "Dear lili, Happy Valentine's Day! Lyon Will Always Love You Till The End! ♥ Forever! ♥"
-
for item in words.split():
-
#要想實現打印出字元間的空格效果,此處新增:item = item+' '
-
letterlist = []#letterlist是所有列印字元的總list,裡面包含y條子列表list_X
-
for y in range(12, -12, -1):
-
list_X = []#list_X是X軸上的列印字元列表,裡面裝著一個String類的letters
-
letters = ''#letters即為list_X內的字串,實際是本行要列印的所有字元
-
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);
但是,有點太單調了點,來,讓我擼起袖子搞點事情,將程式碼簡單改造一下,實現動態輸出心形的一段話的效果:
改造以後,看上去不錯了!效果如下:
-
import time
-
words=input('請輸出想要表達的文字:')
-
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)
其實,像❤️ 這樣型別的顏文字其實也是可以輸出的,不過格式不是標準的心型,需要自行調節,大家可以自己嘗試下^_^!
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理
想要獲取更多Python學習資料可以加QQ:2955637827私聊或加Q群630390733大家一起來學習討論吧!