python爱心代码制作_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版本
總結
以上是生活随笔為你收集整理的python爱心代码制作_Python之——爱心代码参与情人节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab中基本函数的用法
- 下一篇: mel滤波器组频率响应曲线_非常好的滤波