使用Python自动统计列表中的男生女生人数

使用Python自动统计列表中的男生女生人数,第1张

在开始这个项目之前,我们先了解一下类变量的基础知识:

静态属性 ==> 实例变量/成员变量

动态属性 ==> 实例函数(方法)/成员函数(方法)

每一份实例都有自己独立的一份数据;

对于公共的数据(对每个对象没有差异的数据),我们把它定义成实例变量是不合理的。我们只需要存储一份, 应该把它定义成类变量,所有的对象后期调用的时候直接调用类变量就可以了。这样可以提高运行速度、节约对象实例化的内存资源。

类变量一般位于类名称的下面,构造函数的上面;

类变量只存储一份,存储在类空间中,在每个对象的空间中不需要存储类变量

在类中访问类变量: 类名类变量名称

在对象中访问类变量: 类名类变量名称 或者 对象名类变量名称

推荐:如果访问类变量,最好还是通过 类名类变量名称 来进行访问。

如果类变量与实例变量同名,使用 对象名类变量名 访问,优先访问的是实例变量。

原则:变量通过 对象名变量名 的方式访问时,优先在当前对象中查找有没有该变量名,如果没有则去类空间中查找该变量名。

我们搭建一个可以统计学生人数的窗体,包括男生人数和女生人数:

前面的界面我们已经搭建好啦,现在我们要写一个student模块来实现数据统计的功能。

学生列表、男生人数、女生人数,我们将其作为类变量存储在Student类中,我们定义一个 load_student 函数用来读取文件中的学生信息,并实现男生女生人数的统计功能

为了防止每次实例化这个类的时候,类变量收到干扰;我们定义一个机制:在Student类的构造方法中,在调用 load_student 方法前先判断一下,如果类变量 student_list 数据为空,则需要导入,否则不导入数据。

现在我们把GUI与后台的功能做一个整合,这里我们定义一个控制程序 startpy ,作为程序的入口;

现在已经可以从程序入口打开GUI了,但是还没有显示人数、表格中的数据也没有显示。所以我们需要在 studentgui 中再添加一个 load_student_info 函数,将功能函数获取到结果加载到GUI界面中。这里主要做两件事:

先实例化 *** 作学生的类,

没有实例变量,实例化还有什么用?实际上,如果不实例化的话, Student 类中的数据是无法导入到 StudentGUI 中来用的。

实例化完成后,在StudentGUI中直接给显示学生人数的变量设置值即可:

给GUI界面的TreeView表格填充数据,填充之前先将TreeView清空:

然后判断传递过来的 student_list 里是否有数据,如果没有数据则d出警示框,有数据则使用 insert 方法逐行插入数据:

至此,我们的项目已经基本完成了

Python可以做什么?

1)网站后端程序员:使用它单间网站,后台服务比较容易维护。如:Gmail、Youtube、知乎、豆瓣

2)自动化运维:自动化处理大量的运维任务

3)数据分析师:快速开发快速验证,分析数据得到结果

4)游戏开发者:一般是作为游戏脚本内嵌在游戏中

5)自动化测试:编写为简单的实现脚本,运用在Selenium/lr中,实现自动化。

6)网站开发:借助django,flask框架自己搭建网站。

7)爬虫获取或处理大量信息:批量下载美剧、运行投资策略、爬合适房源、系统管理员的脚本任务等。

像Python这种解释性的语言,要想私有化部署的同时又保护好源码,就像是对于鱼和熊掌的追求。

虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险。

本次演示环境:linux

确保要发布的包根目录("demo")中有__main__py文件,这个是程序执行入口。

编译

批量改名pyc文件

移动pyc文件

清理py文件

清理__pycache__文件夹

打包成zip

运行时只要将zip文件作为参数即可

最终整合脚本

调用方式

对于在变量和函数名上的混淆有点小儿科,而对于跨文件的类名的混淆又太容易实现。

所以对于混淆程度的取舍,要视工程的规模而定。

21 混淆工具pyminifier

在原来的工具 pyminifier上修复了几个bug。

安装:

python3 安装

或者clone下来,自行安装

使用例子

22 源码变更

不同的配置对于源码的要求不同,以下是笔者踩过的坑。

其他混淆想法

结合混淆、编译和打包,尝试出以下发布脚本。

主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件,再将pyc文件和其他配置文件移动到dist,发布dist即可。

混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。

单从报错提示上看这是没有程序入口文件('__main__py),但还是得的根据你所运行的程序具体分析,看看在配置上有问题没:

1、配置选择py文件,而只选择了项目名。因此选择Edit Configurations。

2、查看Script path,在这里选择py文件,main函数,(没有就选择要执行的py文件)。

3、配置好再试试看

在我看来,Python 可以做任何事情。无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发、桌面程序开发还是科学计

算、图像处理,Python都可以胜任。

Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(Batteries

included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,

也可以作为第三方库给别人使用。

许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至

NASA(美国航空航天局)都大量地使用Python。

龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且

将来深入下去,可以编写那些非常非常复杂的程序。

总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、

动不动就几万行的代码,你可以尽情地嘲笑他。

python学习网,免费的python学习网站,欢迎在线学习!

以上就是关于使用Python自动统计列表中的男生女生人数全部的内容,包括:使用Python自动统计列表中的男生女生人数、学Python能干什么、Python程序代码混淆、编译、打包、运行(桌面程序防破解向)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9318112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存