Python之——愛心代碼參與情人節


一行代碼實現輸出愛心圖,參考https://zhuanlan.zhihu.com/p/23321351

 

原理:

1、借助數學函數——((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3,這個是愛心圖,具體公式是怎么來的不是很懂,借用下。函數小於等於0就是 愛心圖內部

2、遍歷從x軸開始,判斷函數小於0的話用字符填充,否則用空格填充

3、遍歷從y軸開始,逐行輸出

 

以下是一行代碼實現:(網上看到的)

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

 

一行寫列表推導式實現很牛,但是小菜鳥的我當時一下子也沒能看明白,於是乎分解動作:

for y in range(30, -30, -1):
    value = []
    for x in range(-30, 30):
        if ((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3 <= 0:
            value.append("*")
        else:
            value.append(" ")
        s = "".join(value)
    print s

 這樣的話應該就比較清晰了。

 

效果圖如下:

 

 

函數大於0版本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM