遲來的第一篇文章。
這是專欄的第一篇文章。
感謝關注本專欄的人們。
本來我只是想慢慢寫的。因為作者是個小白。很多地方還沒關注者知道的多。
本來想著讓關注的人慢慢積累。
那天邀請了 @劉志軍 先生做作者。沒想到,一下子帶來了這麼多人。
先感謝劉志軍先生,一直看他推薦的書和他發的一些經驗貼。
嗯,我一般會寫做項目或者開發過程中遇到的一些坑。如果說對於關注著沒有任何用,可以取消關注。並且謝謝您們一開始關注我。
因為是第一篇文章,所以說一下昨天寫代碼當中遇到的一些坑。
昨天是在用pygal模塊寫一點統計相關的代碼。
代碼來自於《Python從入門到實踐》這本書。
die_visual.py
import pygalnnfrom die import Diennn# 創建兩個D6ndie = Die()nn# 投擲幾次骰子,並將結果存儲在一個列表中nresults = []nfor roll_num in range(1000):n result = die.roll()n results.append(result)nn# 分析結果nfrequencies = []nfor value in range(1, die.num_sides+1):n frequency = results.count(value)n frequencies.append(frequency)nn# 對結果可視化nhist = pygal.Bar()nnhist.title = "Results of rolling one D6 1000 times."nhist.x_labels = [1, 2, 3, 4, 5, 6]nhist.x_title = "Result"nhist.y_title = "Frequency of Result"nnhist.add(D6, frequencies)nhist.render_to_file(die_visual.svg)nn# 列印結果n# print(frequencies)n
die.py
from random import randintnnnclass Die:n """表示一個骰子的類"""nn def __init__(self, num_sides=6):n """骰子默認為6面"""n self.num_sides = num_sidesnn def roll(self):n """返回一個位於1和骰子面數之間的隨機值"""n return randint(1, self.num_sides)n
但是上述代碼運行過程中總是出現:
ValueError: Invalid PI name die_visualxmln
開始以為是代碼中的錯誤,檢查了幾次並沒有發現問題。
所以後來推薦是pygal的問題。當時安裝的時候沒有更新源,直接安裝的。
查詢我的pygal版本為1.7.0。
於是(我的是Python3,如果你是Python2,你可以把pip3替換為pip) :
pip3 install --upgrade pygaln
更新之後:
pygal (1.7.0) - Latest: 2.4.0 [wheel]n
然後再次運行程序:
運行成功。
用瀏瀏覽器輸入保存的路徑名和文件名打開svg文件:
file:///home/linuxer/code/matplotlib/die_visual.svgn
成功打開:
到這裡。第一篇文章就結束了。
分享踩坑的經歷,只是傳達自己的經驗。
謝謝各位關注,祝節日愉快!
推薦閱讀: