Python—一行代碼情人節(jié)畫愛心表白

7.jpg

更新:鑒于不少盆友評論,我也細(xì)想了一下這段代碼邏輯,其實(shí)說難也不難,有幾點(diǎn):

1.愛心圖形和圓形、橢圓.....類似,都是由一系列的點(diǎn)(X,Y)構(gòu)成的曲線,X,Y又滿足一定的關(guān)系,這樣可以確定出一個(gè)表達(dá)式expression,然后就是兩個(gè)for循環(huán)(for y in range;for x in range)逐行逐列地開始打印,滿足條件expression的打印出字符,否則打印空格符。

2.python語法:.split();.join();** 比較簡單可以自行百度下~

最后,拆解了一下這段長串的【一行代碼】,得到如下的多行代碼,實(shí)際運(yùn)行效果一致,代碼如下:

import time
words = input('Please input the words you want to say!:')
#例子: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);

情人節(jié)到了,怎么表白?受到幾個(gè)小例子告訴你, 一行Python代碼能干哪些事的啟發(fā),我決定用Python寫一段?? 的話來表白(裝X)。原文是一行代碼實(shí)現(xiàn)輸出愛心圖:

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

效果如下:

image

但是,有點(diǎn)太單調(diào)了點(diǎn),來,讓我擼起袖子搞點(diǎn)事情,將代碼簡單改造一下,實(shí)現(xiàn)動態(tài)輸出心形的一段話的效果:

改造以后,看上去不錯了!效果詳見知乎視頻:https://zhuanlan.zhihu.com/p/33816013

代碼如下,喜歡請點(diǎn)贊哦,謝謝???。?/p>

import time
words = input('Please input the words you want to say!:')
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é),大家可以自己嘗試下_!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容