生成器就是自己用python代码写的迭代器,生成器的本质就是迭代器。通过以下两种方式构建一个生成器:1、通过生成器函数2、生成器表达式生成器函数:函数deffunc1(x):x+=1returnxprint(func1(5))生成器函数deffunc1(x):x+=1yieldxg_obj=func1(5)print(g_obj.__next__())一个next对应一个yield。yieldVSreturnreturn结束函数,给函数的执行者返回值yie
系统 2019-09-27 17:50:36 1785
到底什么是Python?•Python是一种解释性语言。Python代码在运行之前不需要编译。其它解释性语言还包括PHP和Ruby。•Python是动态类型语言,指的是在声明变量时,不需要说明变量的类型。•Python非常适合面向对象的编程(OOP),因为它支持通过组合(composition)与继承(inheritance)的方式定义类(class)。•Python中没有访问说明符(类似C++中的public和private),这么设计的依据是“大家都是
系统 2019-09-27 17:50:35 1785
python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包?使用的时候边记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本。这些问题,requirements.txt都可以解决!生成requirements.txt,有两种方式:第一种适用于单虚拟环境的情况::pipfreeze>requirements.txt为什么只适用于单虚拟环境?因为这种方式,会将环境中的依赖包全都加入,如果使用
系统 2019-09-27 17:50:13 1785
python语言解释器是一个轻量级的小尺寸软件,可以在python语言主网站上下载网址如下https://www.python.org/downloads/我用的是sulimetext当然你也可以用其他的Sublime有很多优点比如SublimeText具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。SublimeText的主要功能包括:拼写检查,书签,完整的PythonAPI,Goto功能,即
系统 2019-09-27 17:50:02 1785
Python作为一门面对对象的语言,那么肯定也是有多态这个属性的,这里主要跟C++的多态做一下类比先看下面的代码这里可以看到,Child,Child2都是Parent的子类,他们分别重写了父类的print_func函数,因此可以看到下面的结果这是单独打印每个对象来得到的结果,下面开始看Python的多态这里可以看到,print_who这个函数只是将obj对象的print_func函数调用打印了一下。这里和C++的多态都是区别不大的。但是Python的多态比
系统 2019-09-27 17:49:56 1785
8.计数排序8.1算法思想计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),当o(k)O(nlog(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O(nlog(n)),如归并排序,堆排序)。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围
系统 2019-09-27 17:49:42 1785
前言Quora问答社区的一个开发者投票统计,程序员最大的难题是:如何命名(例如:给变量,类,函数等等),光是如何命名一项的选票几乎是其它八项的投票结果的总和。如何给变量命名,如何让它变得有意义成了程序员不可逾越的难题,这篇文章参考了CleanCode,提供7条命名建议,希望能在取名字的过程中给你带来一些帮助。以下都是基于Python3.7语法1、使用有意义而且可读的变量名差ymdstr=datetime.date.today().strftime("%y-
系统 2019-09-27 17:49:04 1785
python基础学习笔记(三)2013-04-1800:22虫师阅读(...)评论(...)编辑收藏序列概览Python包含6种内建的序列,这里重点讨论最常用的两种类型:列表和元组。列表与元组的主要区别在于,列表可以修改,元组则不能。也就是说如果要根据要求来添加元素,那么列表可以会更好用;而出于某些原因,序列不能修改的时候,使用元组则更为合适。在操作一组数值的时候,序列很好用。可以用序列表示数据库中一个人的信息---第一1是姓名,第2个元素是年龄。根据上述
系统 2019-09-27 17:48:57 1785
python基础学习笔记(四)2013-04-1823:59虫师阅读(...)评论(...)编辑收藏列表本节继续讨论列表不同元组和字符串的地方:列表是可变的(mutable)----可以改变列表的内容,并且列表有很多有用的、专门的方法。List函数可以将一个字符串拆分成列表。>>>list('chongshi')['c','h','o','n','g','s','h','i']改变列表:元素赋值例如,我们想对一个列表中的某个元素赋值。>>>x=[1,2,3
系统 2019-09-27 17:48:57 1785
*args和**kwargs*args代表位置参数,它会接收任意多个参数并把这些参数作为元组传递给函数。**kwargs代表的关键字参数,允许你使用没有事先定义的参数名,另外,位置参数一定要放在关键字参数的前面。__new__和__init__的区别创建一个新实例时调用__new__,初始化一个实例时用__init__,这是它们最本质的区别。new方法会返回所构造的对象,init则不会.new函数必须以cls作为第一个参数,而init则以self作为其第一
系统 2019-09-27 17:48:29 1785