小白求教 python 引入pygal模块后该模块无法使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白求教 python 引入pygal模块后该模块无法使用相关的知识,希望对你有一定的参考价值。
该先下载这一个android模块:ImportError,再导入。我的也是定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。
比如说,下面的代码输入到一个文件中,就可以看作是一个模块:
def printme(var):
print var
if __name__ == '__main__':
printme(1)
假设说输入到a.py中,那么import a就可以把这个模块导入。
然后可执行a.printme(3),屏幕即可打印出3:
>>> a.printme(3)
3
>>>
一个模块顶层定义的变量,会自动变成模块的属性。例如:
data=[1,2,3]
def printme(var):
print var
if __name__ == '__main__':
printme(1)
data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。
引入模块示例如下:(假定此时data=[1,2,3]未定义)
>>> import a
>>> a.data
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a.data
AttributeError: 'module' object has no attribute 'data'
>>> reload(a)
<module 'a' from 'C:/py\a.pyc'>
>>> a.data
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
a.data
AttributeError: 'module' object has no attribute 'data'
>>>
从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=[1,2,3],重新加载a模块,并输出data属性:
>>> reload(a)
<module 'a' from 'C:/py\a.py'>
>>> a.data
[1, 2, 3]
>>>
这里的reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。
上面a.data,就是访问模块中的属性。
上面的例子是导入一个文件作为一个模块。
其实python的模块导入还有更丰富的内容。
除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。
看下面例子:
在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。
那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import aa.bb.a,就可以导入模块a了。
希望本文所述对大家的Python程序设计有所帮助。 参考技术A 应该先下载一个android模块,再导入。我的也是:ImportError: No module named android
Python开发模块:Pygal 绘制直方图
Pygal
Pygal可用来生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表,这很有用,可以自动缩放,自适应观看者的屏幕
1、Pygal模块安装
① Windows系统
# Pygal模块安装 $ pip3 install pygal
② Linux和OS X系统
# Pygal模块安装 $ pip install --user pygal==1.7
2、Pygal画廊-直方图
模拟掷骰子,分析最后的结果,生成图形
创建die.py筛子类文件:
from random import randint class Die(): ‘‘‘扔骰子的类‘‘‘ def __init__(self,num_sides=6): self.num_sides = num_sides # 骰子的面数 def roll(self): return randint(1,self.num_sides)
创建die_visual.py文件,生成直方图:
from die import Die import pygal die = Die() # 数据集合 results = [] count = 1 for roll_num in iter(lambda *args:die.roll(),None): results.append(roll_num) if count >= 1000: break count +=1 # 分析结果 frequencies= [] for value in range(1,die.num_sides+1): frequencie = results.count(value) frequencies.append(frequencie) # 对结果进行可视化 hist = pygal.Bar() # 生成实例 hist.title = ‘Results of rolling one D6 1000 times‘ # 标题 hist.x_labels = [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘] # X轴数值坐标 hist.x_title = ‘Result‘ # X轴标题 hist.y_title = ‘Frequency of Result‘ # Y轴标题 hist.add(‘D6‘,frequencies) # 传入Y轴数据 hist.render_to_file(‘die_visual.svg‘) # 文件生成路径,必须为svg格式文件
通过浏览器打开die_visual.svg文件:
3、同时掷两枚骰子
修改die_visual.py文件:
from die import Die import pygal die1 = Die() die2 = Die() # 数据集合 results = [] for i in range(5000): result = die1.roll() + die2.roll() results.append(result) # 分析结果 frequencies= [] for value in range(2,die1.num_sides+die2.num_sides+1): frequencie = results.count(value) frequencies.append(frequencie) # 对结果进行可视化 hist = pygal.Bar() # 生成实例 hist.title = ‘Results of rolling one D6 5000 times‘ # 标题 hist.x_labels = [‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘10‘,11,12] # X轴数值坐标 hist.x_title = ‘Result‘ # X轴标题 hist.y_title = ‘Frequency of Result‘ # Y轴标题 hist.add(‘D6+D6‘,frequencies) # 传入Y轴数据 hist.render_to_file(‘die_visual.svg‘) # 文件生成路径,必须为svg格式文件
浏览器浏览图形die_visual.svg:
以上是关于小白求教 python 引入pygal模块后该模块无法使用的主要内容,如果未能解决你的问题,请参考以下文章