1. 程式人生 > 實用技巧 >程式猿的浪漫:用python畫動態愛心

程式猿的浪漫:用python畫動態愛心

初級畫心

學Python,感覺你們的都好複雜,那我來個簡單的,我是直接把心形看作是一個正方形+兩個半圓:

於是這就很簡單了,十行程式碼解決:


  1. importturtleast

  2. t.pensize(2)

  3. # 筆大小2畫素

  4. t.pencolor("red")

  5. # 顏色為紅色

  6. t.left(45)

  7. # 45度

  8. t.fd(200)

  9. # 向前200直線

  10. t.circle(100, 180)

  11. # 畫一圓半徑100 弧度180

  12. t.right(90)

  13. # 向右90度

  14. t.circle(100, 180)

  15. # 再畫一個圓半徑100 弧度180

  16. t.fd(200)

  17. # 直線向前直線200

  18. t.done()

  19. # 繪製完成

一行程式碼畫心

原始碼


  1. 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)]))


拆解了一下這段長串的【一行程式碼】,得到如下的多行程式碼,實際執行效果一致,程式碼如下:


  1. import time

  2. words=input('請輸出想要表達的文字:')

  3. #例子:words = "Dear lili, Happy Valentine's Day! Lyon Will Always Love You Till The End! ♥ Forever! ♥"

  4. for item in words.split():

  5. #要想實現打印出字元間的空格效果,此處新增:item = item+' '

  6. letterlist = []#letterlist是所有列印字元的總list,裡面包含y條子列表list_X

  7. for y in range(12, -12, -1):

  8. list_X = []#list_X是X軸上的列印字元列表,裡面裝著一個String類的letters

  9. letters = ''#letters即為list_X內的字串,實際是本行要列印的所有字元

  10. for x in range(-30, 30):#*是乘法,**是冪次方

  11. expression = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3

  12. if expression <= 0:

  13. letters += item[(x-y) % len(item)]

  14. else:

  15. letters += ' '

  16. list_X.append(letters)

  17. letterlist += list_X

  18. print('\n'.join(letterlist))

  19. time.sleep(1.5);

但是,有點太單調了點,來,讓我擼起袖子搞點事情,將程式碼簡單改造一下,實現動態輸出心形的一段話的效果:

改造以後,看上去不錯了!效果如下:

  1. import time

  2. words=input('請輸出想要表達的文字:')

  3. for item in words.split():

  4. 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)]))

  5. time.sleep(1.5)

其實,像❤️ 這樣型別的顏文字其實也是可以輸出的,不過格式不是標準的心型,需要自行調節,大家可以自己嘗試下^_^!

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理
想要獲取更多Python學習資料可以加QQ:2955637827私聊或加Q群630390733大家一起來學習討論吧!