您的位置:

python通过线创建面的简单介绍

本文目录一览:

Python其实很简单 第十五章 文件操作

在各种变量中保存的数据都是临时的,随着程序运行结束都会丢失。要做到数据长期有效,必须建立在磁盘中建立文件,将数据输入到文件中并保存。需要获取数据时需要打开文件读取。

而我们自己建立的程序都是应用程序,从本质上讲,应用程序是无法直接操作计算机的硬件的,譬如读写磁盘中文件,这就需要调用操作系统中的相应命令。接下来我们使用的Python内置函数open()、write()都是通过调用操作系统的相关命令才实现文件读写的,至于其中的细节,我们就不需要考虑了。

15.1创建和打开文件

在Python 中创建或打开文件,实际上是建立一个对象,该对象通过调用内置的open()函数创建或打开一个文件。

语法:

file object = open(filename [, mode][, buffering])

参数说明如下:

filename:file_name变量是一个包含了你要访问的文件名称的字符串值;

mode:mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

Buffering:如果buffering的值被设为0,就不会有寄存;如果buffering的值取1,访问文件时会寄存行;如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。

mode参数的参数值及说明

对于其中最难区别的r、r+、w、w+、a、a+几个参数的区别总结如下,要特别注意指针的位置:

下面举例说明open( )函数的使用方法。

例1:

file=open('1.py')

如果文件“1.py”存在,则可以打开此文件;如果文件“1.py”不存在,则会出现如下提示:

Traceback (most recent call last):

File " ", line 1, in

file=open('1.py')

FileNotFoundError: [Errno 2] No such file or directory: '1.py'

例2:

file=open('4.py',’a+’)

虽然文件“4.py”不存在,但运行并未出现错误,参见上表,“a+”的含义是以读写模式打开文件,如果该文件已经存在,新内容将以追加方式写入;如果该文件不存在,则新建文件用于写入。查看文件夹,发现已经生成了一个新的文件4.py。

例3:

file=open('python.png','rb')

print(file)

运行结果:

这就是说,虽然Python可以打开一个图片格式的文件,但print()并不能将其输出,还需要第三方库中模块的相应方法去处理,如PIL中的open()f方法。

例4:

file = open("f.txt", "w",encoding='utf-8')

# 以只写模式打开文件f.txt,编码方式为utf-8

print( "文件名: ", file.name) # 输出文件名

print( "是否已关闭 : ", file.closed) # 文件是否打开

print( "访问模式 : ", file.mode) # 文件访问模式

运行结果:

文件名: f.txt

是否已关闭 : False

访问模式 : w

例5:

15.2关闭文件

打开文件使用后要及时关闭,以免造成不必要的破坏,同时也可以释放内存。在Python中使用close()方法可以关闭文件。

语法格式:

file.close()

其中,file为文件对象。

15.3 with语句

with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。

with语句的语法格式如下:

with expression as target:

with-body

其中,expression用于指定一个表达式,譬如打开文件的open()函数。target用于指定一个变量,并且将expression的结果保存到该变量中,譬如文件对象file。with-body用于指定with语句体,譬如一些文件操作的相关语句,如果没有要执行的语句体,则直接用pass语句代替。

假设python当前目录下存在一个test.txt文件,其内容如下:

Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

Python是交互式语言: 这意味着,您可以在一个 Python 提示符 后直接执行代码。

Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。

举例如下:

with open('test.txt','r',encoding='utf-8') as file:

line=file.readline() # readline()方法可以读取文件一行数据,接下来就会讲到。

print(line)

运行结果如下:

Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

而此时,我们给该段代码with语句之外再增加一个读取文件的语句,代码如下:

with open('test.txt','r',encoding='utf-8') as file:

line=file.readline()

print(line)

line2=file.readline()

print(line2)

发现出现了如下错误提示:

Traceback (most recent call last):

File "C:/Users/zym/AppData/Local/Programs/Python/Python39/3.py", line 5, in

line2=file.readline()

ValueError: I/O operation on closed file.

意思是要读取的文件已经被关闭了。

由此可知,当with语句运行结束后,被打开的test.txt文件就自动关闭了。

15.4读取文件

在Python 中读取文件的方法有:

1、读取指定个数的字符

格式如下:

File.read([size])

其中,file为打开的文件对象。size为可选参数,可以指定要读取的字符个数,省缺表示读取所有内容。

在调用read()方法读取文件内容时,文件必须是以r(只读)或者r+(读写)方式打开。

如:

with open('test.txt','r',encoding='utf-8') as file:

txt=file.read() (或txt=file.read(10))

print(txt)

将读取、输出test.txt文件的全部内容(或前10个字符)。

2、移动文件的指针

对于刚打开的文件,文件指针总是指向文件头的。也可以通过seek()方法将文件的指针移动到新的位置。

格式如下:

file.seek(offset[,whence])

其中,file表示已经打开的文件对象;offset用于指定移动的字符个数;whence表示从哪个位置起始计算个数,其值为0表示从文件头开始计算,其值为1表示从当前位置开始计算,其值为2表示从文件尾开始计算,默认值为0。

例如:

with open('test.txt','r',encoding='utf-8') as file:

string=file.read(9)

print('取9个字符: '+string)

file.seek(2) #指针从文件头开始移动2个字符

string=file.read(9) #从当前位置读取10个字符

输出结果:

取9个字符:

Python是一种

取9个字符:

thon是一种解释

而下面的代码会抛出错误:

with open('test.txt','r',encoding='utf-8') as file:

file.seek(2,1) #指针从当前位置开始移动2个字符

string=file.read(10) #从当前位置读取10个字符

print('取10个字符: '+string)

错误提示为:

Traceback (most recent call last):

File "C:UserszymAppDataLocalProgramsPythonPython393.py", line 7, in

file.seek(2,1) #指针从当前位置开始移动2个字符

io.UnsupportedOperation: can't do nonzero cur-relative seeks

原因在于,必须使用b模式(即rb)打开文件,才能使用whence参数。但是,b模式(二进制)不适合文本文件。对于test.txt这样的文本文件,为了解决通过改变指针读取任意位置字符,可以采用加一个位置变量的方法来存储指针的值。

例如:

with open('test.txt','r',encoding='utf-8') as file:

#utf-8汉字与英文字符都占一个字符

string='' #设置一个空字符串

pointer=0 #当前指针为0

str1=file.read(6) #读取6个字符

pointer+=6 #指针变量后移6个字符

string+=str1 #string用来存放已读取的字符

print('取6个字符: ',str1)

file.seek(pointer) #指针从文件头开始移动2个字符

str1=file.read(8) #从当前位置读取10个字符

pointer+=8 #指针跳过已读取的字符

string+=str1

print('再取8个字符: ',str1)

print('所有读取的字符: ',string)

print('当前指针所处的位置: ',pointer)

str1=file.read(1)

print('当前指针所处的字符: ',str1)

运行结果如下:

取6个字符:

Python

再取8个字符:

是一种解释型语言

所有读取的字符:

Python是一种解释型语言

当前指针所处的位置:

14

当前指针所处的字符:

3、读取一行数据readline()方法

语法格式:

file.readline()

例:

with open('test.txt','r',encoding='utf-8') as f:

string=f.read(1) # 读取文件的第一个字符

if string != '': # 防止文件为空文件

lineno=0

while True:

line=f.readline()

if line != '':

lineno+=1

print('第'+str(lineno)+'行:'+line,end='')

# 因为每行都有自带的分行符,print()语句不允许换行

else:

break # 出现空行时停止读取

else:

print('要读取的文件为空文件!')

运行结果:

第1行:ython是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

第2行:Python是交互式语言: 这意味着,您可以在一个 Python 提示符 后直接执行代码。

第3行:Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

第4行:Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。

4、读取全部行命令readlines()方法

语法格式:

File.readlines()

该方法与read()方法一样,在调用read()方法读取文件内容时,文件必须是以r(只读)或者r+(读写)方式打开。

例:

with open('test.txt','r',encoding='utf-8') as f:

txt=f.readlines()

print(txt)

运行结果:

['Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 ', 'Python是交互式语言: 这意味着,您可以在一个 Python 提示符 后直接执行代码。 ', 'Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 ', 'Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。 ']

从上面的运行结果可以看出,readlines()方法的返回值为一个字符串列表。所以,也可以以读取列表元素的方法输出。如下所示:

with open('test.txt','r',encoding='utf-8') as f:

txt=f.readlines()

for line in txt:

print(line,end='')

运行结果:

Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

Python是交互式语言: 这意味着,您可以在一个 Python 提示符 后直接执行代码。

Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。

15.5 写入文件内容

语法格式如下:

file.write(string)

其中,file为打开的文件对象,string为要写入的字符串。

写入文件内容时,文件必须以w(可写)或a(追加)模式打开。否则,会抛出如下异常提示:

Traceback (most recent call last):

File "C:UsersAdministratorAppDataLocalProgramsPythonPython383.py", line 2, in

f.write('人生苦短,我用Python!')

io.UnsupportedOperation: not writable

关于write()方法的用法举例如下:

with open('test.txt','a',encoding='utf-8') as f:

f.write('人生苦短,我用Python!')

with open('test.txt','r',encoding='utf-8') as f:

txt=f.read()

print(txt)

运行结果:

Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

Python是交互式语言: 这意味着,您可以在一个 Python 提示符 后直接执行代码。

Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。

人生苦短,我用Python!

可以看出,由于文件的打开方式为a模式(追加模式),写入的内容被写入到文件的末尾。

在Python中,文件操作方法里没有类似于字符串内的计算长度、查找、替换、截取、分隔等方法,为什么没有?原因可能是文件的类型太复杂,譬如说二进制文件,上述操作的意义不大。如果仅仅要对文本文件进行上述操作,完全可以先把文件的内容读取到字符串中,再用相应的字符串函数或方法去操作就可以了。譬如,要将test.txt文件中的字符串‘Python’替换为’PHP’,则可以用如下代码完成:

txt1=''

with open('test.txt','r',encoding='utf-8') as f:

txt1=f.read() #先将文件内容存入字符串txt1中

txt2=txt1.replace('Python','PHP') #将txt1中的'Python'替换为'PHP',并存入txt2

with open('test.txt','w',encoding='utf-8') as f:

f.write(txt2) #将字符串txt2的内容写回到文件中

这里之所以分两步打开文件(第一次为r模式,第二次为w模式),而没有采用一次读写(r+、w+方式),因为那样比较容易出错。实践证明,将文件的读操作和写操作分开其实是非常正确的选择。

用Keras生成面部Python实现

可采用的机器学习数据集:

两者都包含人脸图像。我把这两个组合成一个文件夹。

最常听到的两种图像生成技术是生成对抗网络(GAN)和LSTM网络。

LSTM训练的时候速度非常慢,GAN训练会快得多。实际结果花不到半小时,模糊的面孔就会开始出现。随着时间的推移,图像会更加逼真。

有许多GAN变种。我使用的一种称为深度卷积神经网络(DCGAN)。DCGAN的优点在于它使用了卷积层。卷积神经网络目前是存在的最佳图像分类算法。

生成对抗网络是由一位名叫Ian Goodfellow的研究员发明的,并于2014年引入了GAN。

GAN非常强大。利用正确的数据,网络架构和超参数,您可以生成非常逼真的图像。

将来,一些高级版本的GAN或其他一些内容生成算法可能会让我们做一些很酷的事情:

但GAN是如何运作的呢?

GAN实际上不是一个神经网络,而是两个。其中之一是Generator。它将随机值作为输入并生成图像。

第二是discriminator。它试图确定图像是假的还是真的。

训练GAN就像一场竞赛。Generator试图在愚弄discriminator时变得尽可能好。discriminator试图尽可能地将假图像与真实图像分开。

这将迫使他们两个都改善。理想情况下,这将在某种程度上导致以下情况:

在现实中,您需要确保一切正常(数据、体系结构、超参数)。GAN对超参数值的微小变化非常敏感。

导入库

第一步是导入所有需要的Python库。

FaceGenerator类

这段Python代码初始化了训练所需的一些重要变量。

将训练数据加载到模型中

此函数将文件夹的名称作为输入,并将该文件夹中的所有图像作为numpy数组返回。所有图像的大小都调整为__init__函数中指定的大小。

Shape=(图像的数量,宽度,高度,通道)。

神经网络

这两个函数定义了generator和discriminator。

神经网络模型训练

对于每个epoch:

训练结束后:

此函数可用于在训练后生成新图像。

训练GAN很难,当你成功时,这种感觉会非常有益。

此Python代码可以轻松用于其他图像数据集。请记住,您可能需要编辑网络体系结构和参数,具体取决于您尝试生成的图像。

python怎么做图形界面

python3.X以上版本有自带的内置模块,可以进行图形界面的编程逻辑(turtle模块,小乌龟,可以画图书写等等)

也可以用其他第三方的模块来实现。

强烈推荐一款Python可视化神器!强烈必备!

Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。

受 Seaborn 和 ggplot2 的启发,它专门设计为具有简洁,一致且易于学习的 API :只需一次导入,您就可以在一个函数调用中创建丰富的交互式绘图,包括分面绘图(faceting)、地图、动画和趋势线。 它带有数据集、颜色面板和主题,就像 Plotly.py 一样。

Plotly Express 完全免费:凭借其宽松的开源 MIT 许可证,您可以随意使用它(是的,甚至在商业产品中!)。

最重要的是,Plotly Express 与 Plotly 生态系统的其他部分完全兼容:在您的 Dash 应用程序中使用它,使用 Orca 将您的数据导出为几乎任何文件格式,或使用JupyterLab 图表编辑器在 GUI 中编辑它们!

用 pip install plotly_express 命令可以安装 Plotly Express。

一旦导入Plotly Express(通常是 px ),大多数绘图只需要一个函数调用,接受一个整洁的Pandas dataframe,并简单描述你想要制作的图。 如果你想要一个基本的散点图,它只是 px.scatter(data,x =“column_name”,y =“column_name”)。

以下是内置的 Gapminder 数据集的示例,显示2007年按国家/地区的人均预期寿命和人均GDP 之间的趋势:

如果你想通过大陆区分它们,你可以使用 color 参数为你的点着色,由 px 负责设置默认颜色,设置图例等:

这里的每一点都是一个国家,所以也许我们想要按国家人口来衡量这些点...... 没问题:这里也有一个参数来设置,它被称为 size:

如果你好奇哪个国家对应哪个点? 可以添加一个 hover_name ,您可以轻松识别任何一点:只需将鼠标放在您感兴趣的点上即可! 事实上,即使没有 hover_name ,整个图表也是互动的:

也可以通过 facet_col =”continent“ 来轻松划分各大洲,就像着色点一样容易,并且让我们使用 x轴 对数(log_x)以便在我们在图表中看的更清晰:

也许你不仅仅对 2007年 感兴趣,而且你想看看这张图表是如何随着时间的推移而演变的。 可以通过设置 animation_frame=“year” (以及 animation_group =“country” 来标识哪些圆与控制条中的年份匹配)来设置动画。

在这个最终版本中,让我们在这里调整一些显示,因为像“gdpPercap” 这样的文本有点难看,即使它是我们的数据框列的名称。 我们可以提供更漂亮的“标签” (labels),可以在整个图表、图例、标题轴和悬停(hovers)中应用。 我们还可以手动设置边界,以便动画在整个过程中看起来更棒:

因为这是地理数据,我们也可以将其表示为动画地图,因此这清楚地表明 Plotly Express 不仅仅可以绘制散点图(不过这个数据集缺少前苏联的数据)。

事实上,Plotly Express 支持三维散点图、三维线形图、极坐标和地图上三元坐标以及二维坐标。 条形图(Bar)有二维笛卡尔和极坐标风格。

进行可视化时,您可以使用单变量设置中的直方图(histograms)和箱形图(box)或小提琴图(violin plots),或双变量分布的密度等高线图(density contours)。 大多数二维笛卡尔图接受连续或分类数据,并自动处理日期/时间数据。 可以查看我们的图库 (ref-3) 来了解每个图表的例子。

数据 探索 的主要部分是理解数据集中值的分布,以及这些分布如何相互关联。 Plotly Express 有许多功能来处理这些任务。

使用直方图(histograms),箱形图(box)或小提琴图(violin plots)可视化单变量分布:

直方图:

箱形图:

小提琴图:

还可以创建联合分布图(marginal rugs),使用直方图,箱形图(box)或小提琴来显示双变量分布,也可以添加趋势线。 Plotly Express 甚至可以帮助你在悬停框中添加线条公式和R²值! 它使用 statsmodels 进行普通最小二乘(OLS)回归或局部加权散点图平滑(LOWESS)。

在上面的一些图中你会注意到一些不错的色标。 在 Plotly Express 中, px.colors 模块包含许多有用的色标和序列:定性的、序列型的、离散的、循环的以及所有您喜欢的开源包:ColorBrewer、cmocean 和 Carto 。 我们还提供了一些功能来制作可浏览的样本供您欣赏(ref-3):

定性的颜色序列:

众多内置顺序色标中的一部分:

我们特别为我们的交互式多维图表感到自豪,例如散点图矩阵(SPLOMS)、平行坐标和我们称之为并行类别的并行集。 通过这些,您可以在单个图中可视化整个数据集以进行数据 探索 。 在你的Jupyter 笔记本中查看这些单行及其启用的交互:

散点图矩阵(SPLOM)允许您可视化多个链接的散点图:数据集中的每个变量与其他变量的关系。 数据集中的每一行都显示为每个图中的一个点。 你可以进行缩放、平移或选择操作,你会发现所有图都链接在一起!

平行坐标允许您同时显示3个以上的连续变量。 dataframe 中的每一行都是一行。 您可以拖动尺寸以重新排序它们并选择值范围之间的交叉点。

并行类别是并行坐标的分类模拟:使用它们可视化数据集中多组类别之间的关系。

Plotly Express 之于 Plotly.py 类似 Seaborn 之于 matplotlib:Plotly Express 是一个高级封装库,允许您快速创建图表,然后使用底层 API 和生态系统的强大功能进行修改。 对于Plotly 生态系统,这意味着一旦您使用 Plotly Express 创建了一个图形,您就可以使用Themes,使用 FigureWidgets 进行命令性编辑,使用 Orca 将其导出为几乎任何文件格式,或者在我们的 GUI JupyterLab 图表编辑器中编辑它 。

主题(Themes)允许您控制图形范围的设置,如边距、字体、背景颜色、刻度定位等。 您可以使用模板参数应用任何命名的主题或主题对象:

有三个内置的 Plotly 主题可以使用, 分别是 plotly, plotlywhite 和 plotlydark。

px 输出继承自 Plotly.py 的 Figure 类 ExpressFigure 的对象,这意味着你可以使用任何 Figure 的访问器和方法来改变 px生成的绘图。 例如,您可以将 .update() 调用链接到 px 调用以更改图例设置并添加注释。 .update() 现在返回修改后的数字,所以你仍然可以在一个很长的 Python 语句中执行此操作:

在这里,在使用 Plotly Express 生成原始图形之后,我们使用 Plotly.py 的 API 来更改一些图例设置并添加注释。

Dash 是 Plotly 的开源框架,用于构建具有 Plotly.py 图表的分析应用程序和仪表板。Plotly Express 产生的对象与 Dash 100%兼容,只需将它们直接传递到 dash_core_components.Graph,如下所示: dcc.Graph(figure = px.scatter(...))。 这是一个非常简单的 50行 Dash 应用程序的示例,它使用 px 生成其中的图表:

这个 50 行的 Dash 应用程序使用 Plotly Express 生成用于浏览数据集的 UI 。

可视化数据有很多原因:有时您想要提供一些想法或结果,并且您希望对图表的每个方面施加很多控制,有时您希望快速查看两个变量之间的关系。 这是交互与 探索 的范畴。

Plotly.py 已经发展成为一个非常强大的可视化交互工具:它可以让你控制图形的几乎每个方面,从图例的位置到刻度的长度。 不幸的是,这种控制的代价是冗长的:有时可能需要多行 Python 代码才能用 Plotly.py 生成图表。

我们使用 Plotly Express 的主要目标是使 Plotly.py 更容易用于 探索 和快速迭代。

我们想要构建一个库,它做出了不同的权衡:在可视化过程的早期牺牲一些控制措施来换取一个不那么详细的 API,允许你在一行 Python 代码中制作各种各样的图表。 然而,正如我们上面所示,该控件并没有消失:你仍然可以使用底层的 Plotly.py 的 API 来调整和优化用 Plotly Express 制作的图表。

支持这种简洁 API 的主要设计决策之一是所有 Plotly Express 的函数都接受“整洁”的 dataframe 作为输入。 每个 Plotly Express 函数都体现了dataframe 中行与单个或分组标记的清晰映射,并具有图形启发的语法签名,可让您直接映射这些标记的变量,如 x 或 y 位置、颜色、大小、 facet-column 甚至是 动画帧到数据框(dataframe)中的列。 当您键入 px.scatter(data,x ='col1',y='col2') 时,Plotly Express 会为数据框中的每一行创建一个小符号标记 - 这就是 px.scatter 的作用 - 并将 “col1” 映射到 x 位置(类似于 y 位置)。 这种方法的强大之处在于它以相同的方式处理所有可视化变量:您可以将数据框列映射到颜色,然后通过更改参数来改变您的想法并将其映射到大小或进行行分面(facet-row)。

接受整个整洁的 dataframe 的列名作为输入(而不是原始的 numpy 向量)也允许 px 为你节省大量的时间,因为它知道列的名称,它可以生成所有的 Plotly.py 配置用于标记图例、轴、悬停框、构面甚至动画帧。 但是,如上所述,如果你的 dataframe 的列被笨拙地命名,你可以告诉 px 用每个函数的 labels 参数替换更好的。

仅接受整洁输入所带来的最终优势是它更直接地支持快速迭代:您整理一次数据集,从那里可以使用 px 创建数十种不同类型的图表,包括在 SPLOM 中可视化多个维度 、使用平行坐标、在地图上绘制,在二维、三维极坐标或三维坐标中使用等,所有这些都不需要重塑您的数据!

在 API 级别,我们在 px 中投入了大量的工作,以确保所有参数都被命名,以便在键入时最大限度地发现:所有 scatter -类似的函数都以 scatter 开头(例如 scatter_polar, scatter_ternary)所以你可以通过自动补全来发现它们。 我们选择拆分这些不同的散点图函数,因此每个散点图函数都会接受一组定制的关键字参数,特别是它们的坐标系。 也就是说,共享坐标系的函数集(例如 scatter, line & bar,或 scatter_polar, line_polar 和 bar_polar )也有相同的参数,以最大限度地方便学习。 我们还花了很多精力来提出简短而富有表现力的名称,这些名称很好地映射到底层的 Plotly.py 属性,以便于在工作流程中稍后调整到交互的图表中。

最后,Plotly Express 作为一个新的 Python 可视化库,在 Plotly 生态系统下,将会迅速发展。所以不要犹豫,立即开始使用 Plotly Express 吧!

Python 创建对面类和方法

如下:

class Animal:

def __init__(self,name,kind,age,gender):

self.name=name #姓名

self.kind=kind #种类

self.age=age #年龄

self.gender=gender #性别

def eat(self):

print('eat')

class Dog(Animal):

def __init__(self,name,kind,age,gender,speed):

Animal.__init__(self,name,kind,age,gender)

self.tail="尾巴"

self.speed=speed

def run(self):

print('run')

def call(self):

print('call')

class Cat(Animal):

def __init__(self,name,kind,age,gender,speed):

Animal.__init__(self,name,kind,age,gender)

self.tail="尾巴"

self.speed=speed

def run(self):

print('run')

def call(self):

print('call')

python如何做界面

PyQt,一个基于Qt的Python接口包,可以直接使用Qt的控件,还可以使用QSS进行界面美化,下面我简单介绍一下这个包的安装和使用,实验环境Win7+Python3.6+PyCharm5.0,主要内容如下:

1.首先,安装PyQt,这个直接在cmd窗口输入命令“pip install pyqt5”就行,如下,由于安装包比较大,所以需要等待一会儿:

这里我新建了一个简单的窗口程序,一个登录页面对话框,2个QLabel,2个QLineEdit和2个QPushButton,如下,设计完成后,可以直接编辑对应控件的styleSheet属性,利用QSS(类似CSS)对控件进行美化,也可以在代码中进行详细美化设计(如果美化比较复杂的话,可以专门编写QSS文件,然后在程序中加载就行):

这里我新建了一个简单的窗口程序,一个登录页面对话框,2个QLabel,2个QLineEdit和2个QPushButton,如下,设计完成后,可以直接编辑对应控件的styleSheet属性,利用QSS(类似CSS)对控件进行美化,也可以在代码中进行详细美化设计(如果美化比较复杂的话,可以专门编写QSS文件,然后在程序中加载就行):

设计完成的UI界面,可以直接使用自带转化工具pyuic5转化为Python程序(命令pyuic5 -o py文件 ui文件,如pyuic5 -o test.py test.ui),如下,就是刚才设计的UI界面的Python代码:

这里我们再添加一下main函数,直接创建上面类的对象,显示对话框就行,如下:

点击运行这个程序,效果如下,和上面设计的一样,非常方便: