遲來的第一篇文章。

這是專欄的第一篇文章。

感謝關注本專欄的人們。

本來我只是想慢慢寫的。因為作者是個小白。很多地方還沒關注者知道的多。

本來想著讓關注的人慢慢積累。

那天邀請了 @劉志軍 先生做作者。沒想到,一下子帶來了這麼多人。

先感謝劉志軍先生,一直看他推薦的書和他發的一些經驗貼。

嗯,我一般會寫做項目或者開發過程中遇到的一些坑。如果說對於關注著沒有任何用,可以取消關注。並且謝謝您們一開始關注我。

因為是第一篇文章,所以說一下昨天寫代碼當中遇到的一些坑。

昨天是在用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

成功打開:

到這裡。第一篇文章就結束了。

分享踩坑的經歷,只是傳達自己的經驗。

謝謝各位關注,祝節日愉快!


推薦閱讀:

從零開始寫Python爬蟲 --- 導言
Python面向對象編程(OOP)
Python入門到精通視頻課程(7)

TAG:Python | Python教程 | Python库 |