用python画爱心再加一行文字_如何理解python一行代码实现一个爱心字符画?
前言
python中有個很酷的效果,一行代碼實現一個愛心字符,雖說是一行代碼,但是理解起來還是比較難的,括號太多,并且使用了python的一些快捷小技巧。比如三元表達式,列表生成式,字符串拼接以及一個心形曲線公式:(x2+y2-1)3-x2y3=0。
下面通過分解來理解這行代碼,這里主要理解三元表達式,列表生成式,還有就是循環中的數字為什么是-30,30和30,-30。
三元表達式理解
三元表達式其實就是將if else語句一行書寫,格式為:result = 為真實的結果 if 判斷條件 else 為假時的結果。
列表生成式理解
原理分析
最終結果是一個愛心的字符串形狀,實際上先打印出60行和60列的字符串方陣,這里為了演示,先使用了一個字符串。
根據上面的效果可以看出的確是一個字符方陣,如何將這個方陣變成愛心的形狀,就需要利用心形曲線公式:(x2+y2-1)3-x2y3=0。這里我們如果小于0 就顯示 字符 O,否則就顯示 點(.)。
愛心形狀出來了,如果想要只保留愛心形狀,只需要將外圍一圈O寫成空字符就可以了。現在還有循環中的數值范圍是如何求得不清楚。
這里就涉及到解方程了,求邊界的范圍。
求解邊界范圍
通過sympy庫,可以直接使用隱函數公式,不用給定一系列點就可以直接繪制出圖形來,非常方便,根據圖形可以 看出x和y取值范圍。
繪制散點圖
上面求出的范圍非常小,有點沒想到,我們通過這個范圍去繪制一個散點圖試試。
理解
根據結果可以看出的確是一個個點形成的,由于點比較多,顯示區間比較小,整體看上去就像一個愛心的效果了。
這里有些方法可能比較難理解,可以結合下面的兩張圖片理解,它們的作用就是將滿足條件地點的x和y坐標分別提取出來,為后面繪圖做準備。
如果不好理解,也可以采用下面這個方法,更好理解。
打印愛心字符圖形
前面利用散點圖的方式,繪制出了一個愛心圖形,實際上是由一個個點組成的,如果將點用字符來替代,那么就可以變成字符圖形了。這里的arange中的數字間隔0.1,根據你想要的點多少可以調整。
上面的0.1的間隔顯得有點細長,讓橫向的點多一些,就可以變得圓潤一點了。
將當個字符改成字符串,利用字符串的索引可以獲取到不同的字符,也可以使用隨機方法去選取。
解開疑惑
通過上面動手自己實現,可以知道實際上愛心的邊界范圍,但是單行中確是-30,30,這里是因為它的x和yj乘以了一個比較小的數進行的縮放,從而放大了它的取值范圍,原理和我們上面調整arange中的間隔數字大小是一樣的。
(全文完)
顯示進度下載圖片
如何使用python實現文本進度條?
建構主義教學的核心是什么?
python小游戲設計入門5-撿金幣游戲(下)
總結
以上是生活随笔為你收集整理的用python画爱心再加一行文字_如何理解python一行代码实现一个爱心字符画?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kafka的原理和作用是什么
- 下一篇: 苹果8p原装配件有什么