Python
LoveDestiny
这个作者很懒,什么都没留下…
展开
-
Python发展史
起源 Python的作者,Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。 在那个时候,Guido接触并使用过诸如Pascal、C、Fortran等语言。原创 2017-10-28 08:50:58 · 735 阅读 · 0 评论 -
Python 生成器
生成器什么是生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量原创 2017-12-31 19:15:59 · 394 阅读 · 0 评论 -
Python正则表达式
正则表达式概述 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。 Regular Expression的“R原创 2017-12-31 19:17:22 · 602 阅读 · 0 评论 -
Python 正则表达式提高
re模块的高级用法searchre.search(pattern, string[, flags]) 若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。re.search():方法用来精确匹配并提取第一个符合规律的对象,而对象内容的提取则使用search方法的属性group()来实现;原创 2017-12-31 19:18:00 · 1075 阅读 · 0 评论 -
Python 迭代器
迭代器 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的generat原创 2018-01-02 17:09:13 · 336 阅读 · 0 评论 -
Python 闭包
闭包闭包(closure)是函数式编程的重要的语法结构,Python也支持这一特性,下面就开始介绍Python中的闭包。 首先看看闭包的概念:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,闭包是由函数和与其相关的引用环境组合而成的实体。在开始介绍闭包之前先看原创 2018-01-02 17:10:28 · 2268 阅读 · 0 评论 -
Python 装饰器
装饰器 装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多初次接触这个知识的人来讲,这个功能有点绕,自学时直接绕过去了,然后面试问到了就挂了,因为装饰器是程序开发的基础知识,这个都不会,别跟人家说你会Python, 看了下面的文章,保证你学会装饰器。 装饰器本质上是一个Python函数,它可以原创 2018-01-02 17:15:59 · 738 阅读 · 1 评论 -
Python 内置装饰器
内置的装饰器 内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些。@property 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性。def getWidth(self): return self.__widthdef setWidth(self, newwidth): self.__width = ne原创 2018-01-02 17:19:06 · 2262 阅读 · 1 评论 -
Python 常用的内建函数
内建函数 Build-in Function,启动python解释器,输入dir(__builtins__), 可以看到很多python解释器启动后默认加载的属性和函数,这些函数称之为内建函数, 这些函数因为在编程时使用较多,cpython解释器用c语言实现了这些函数,启动解释器 时默认加载。 这些函数数量众多,不宜记忆,开发时不是都用到的,待用到时再help(function),原创 2018-01-02 17:23:20 · 1308 阅读 · 0 评论 -
python面向对象(四)之抽象类与接口
学过java的应该知道java有抽象类和接口的那么python呢?(以前写的关于java抽象类的笔记java抽象类与接口) python作为一个动态语言,没有强类型的检查,而是以鸭子类型的方式提现,在执行的时候python不严格要求你必须是继承指定的父类而来,只要在调用的时候你有相应的方法和属性就可以了,长的像鸭子你就是鸭子。 也正是基于python这样的特性,pyth原创 2017-12-27 22:32:36 · 632 阅读 · 0 评论 -
python面向对象(五)之多态
继承 在讲多态之前我们再复习下继承,下面是一个例子。 Circle 和 Rectangle 继承自 Shape,不同的图形,面积(area)计算方式不同。# shape.pyclass Shape: def area(self): return 0.0class Circle(Shape): def __init__(self, r=原创 2017-12-27 22:33:54 · 428 阅读 · 0 评论 -
Python 垃圾回收
现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。 python里也同java一样采用了垃圾收集机制,不过不一样的是: p原创 2018-01-15 09:21:18 · 571 阅读 · 0 评论 -
Python 深拷贝、浅拷贝
Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果。首先,对赋值操作我们要有以下认识:赋值是将一个对象的地址赋值给一个变量,让变量指向该地址( 旧瓶装旧酒 )。修改不可变对象(str、tuple)需要开辟新的空间修改可变对象(list等)不需要开辟新的空间浅拷贝 浅拷贝仅仅复制了容器中元素的地址,就是拷贝了引用,原创 2018-01-15 09:27:05 · 301 阅读 · 0 评论 -
Python 文件IO
Python 文件I/O打印到屏幕最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:#!/usr/bin/python# -*- coding: UTF-8 -*- print ("Python 是一个非常棒的语言,不是吗?")你的标准屏幕上会产生以下结果:P原创 2018-01-15 09:33:15 · 276 阅读 · 0 评论 -
Python pdb调试
调试pdbpdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。 命令 简写命令 作用 break b 设置断点 continue c 继续执行程序 list l 查看当前行的代码段 step s 进入函数 return r 执行代码直到从当前函数返回 qui原创 2018-01-15 09:42:46 · 658 阅读 · 0 评论 -
Python 垃圾回收
现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。 python里也同java一样采用了垃圾收集机制,不过不一样的是: p原创 2018-01-06 11:02:22 · 556 阅读 · 0 评论 -
Numpy详解
NumPy 简介Python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量比较大时,使用列表的速度会很慢。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(a...原创 2018-04-24 21:00:36 · 860 阅读 · 0 评论 -
Pandas详解一
pandas简介pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同...原创 2018-04-28 22:52:40 · 903 阅读 · 0 评论 -
Python 模块进阶
import导入模块1. import 搜索路径import syssys.path例子:In [1]: import sysIn [2]: sys.pathOut[2]: ['', 'E:\\Python\\Scripts\\ipython.exe', 'e:\\python\\python36.zip', 'e:\\python\\DLLs', 'e:\\python\\lib',原创 2017-12-31 19:15:17 · 573 阅读 · 0 评论 -
python面向对象(七)属性方法的添加
通常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。下来我就讲下添加属性和方法,同时也将下限值添加属性方法。添加属性 给一个实例添加属性和方法时,只有对象能使用,对类添加方法和属性时,为类属性和类方法>>> class Peopre(object): """docstring for P原创 2017-12-31 19:14:35 · 620 阅读 · 0 评论 -
Python关键字
查看关键字的方法查看所有的关键字:help(“keywords”)>>> help("keywords")Here is a list of the Python keywords. Enter any keyword to get more help.False def if raiseNone原创 2017-10-28 19:00:21 · 1877 阅读 · 0 评论 -
Python基础一(基本类型和运算符)
在说Python的基本类型钱我们先说下Python注释方式有哪几Python注释行注释#行注释 行注释用以#开头,#右边的所有文字当做说明,而不是真正要执行的程序,起辅助说明作用# 我是注释,可以在里写一些功能说明之类的哦print('hello world')块注释”’块注释”’或者”“”快注释”“” 块注释用三个单引号或者三个双引号包围,引号中的文字当做说明,而不是真原创 2017-10-28 15:44:32 · 653 阅读 · 0 评论 -
Python基础三(选择,循环)
序 首先我们知道程序的执行有三种结构:顺序、选择、循环三种结构,而为了方便我们书写和多次利用我们就需要把一段代码封装器来,这就是方法。今天我就说的是程序的基本结构的格式和方法。 注:所有的程序都可以通过基本结构(顺序,选择,循环)书写出来。流程结构顺序结构语句1:什么是流程控制语句 流程控制语句:可以控制程序的执行流程。2:流程控制语句的分类 顺序结构选择结构循环结构3:执行流原创 2017-10-29 10:23:15 · 388 阅读 · 0 评论 -
Python基础二(输入与输出)
通常,一个程序都会有输入/输出,这样可以与用户进行交互。用户输入一些信息,你会对他输入的内容进行一些适当的操作,然后再输出给用户想要的结果。Python的输入/输出,我们可以用input进行输入,print进行输出,这些都是简单的控制台输入/输出,复杂的有处理文件等。输入raw_input() **注:**python3版本中没有raw_input()函数,只有input()并且 python3中原创 2017-10-29 10:19:49 · 872 阅读 · 0 评论 -
Python字符串(Str)详解
字符串是 Python 中最常用的数据类型。我们可以使用引号(‘或”)来创建字符串。 创建字符串很简单,只要为变量分配一个值即可字符串的格式b = "hello itcast.cn"# 或者b = 'hello itcast.cn'双引号或者单引号中的数据,就是字符串字符串连接的方法直接通过加号(+)操作符连接a = "str1"b = "str2"c = a + bprint原创 2017-10-31 17:21:43 · 7224 阅读 · 0 评论 -
Python3.6新特性
本文解释了Python 3.6中的新功能,与3.5相比。Python 3.6于2016年12月23日发布。有关完整的详细信息,请参阅更新日志。Summary – Release highlights(摘要)新特性PEP 498, formatted string literals. (格式化的字符串文字。)PEP 515, underscores in numeric literals. (原创 2017-11-01 16:01:23 · 2671 阅读 · 0 评论 -
Python的set集合详解
Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。创建集合set 大括号或 set() 函数可以用来创建集合。 set集合类需要的参数必须是迭代器类型的,如原创 2017-11-02 19:39:43 · 839 阅读 · 0 评论 -
Python元组与字典详解
Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号,列表使用方括号。 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 如下实例:tup = ('abc', [12, 434, 54], 1231 )tup = (1, 2, 3, 4, 5 )tup = "a", "b", "c", "d"创建空元组tup = ()原创 2017-11-05 18:41:38 · 395 阅读 · 0 评论 -
Python匿名函数详解
python 使用 lambda 来创建匿名函数。 lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的。 在Python中,lambda作为一个关键字,作为引入表达式的语法。想比较def函数,lambda是单一的表达式,而不是语句块!所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。lambda 只是一个表达原创 2017-11-29 16:43:57 · 23504 阅读 · 2 评论 -
python函数详解
函数 如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。定义函数可以原创 2017-11-29 16:48:30 · 583 阅读 · 0 评论 -
Python 模块
python的模块和C语言中的头文件以及Java中的包很类似,用来导入已经写好的其他代码程序 Python模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。模块的导入模块的导入需要下面几个关键字 from,import,asimport 语句想使用 Python 源文件,只需在另一个源文件里执原创 2017-11-29 16:56:38 · 565 阅读 · 0 评论 -
Python模块制作
在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。定义自己的模块比如有这样一个文件test.py,在test.py中定义了函数add def add(a,b): return a+b调用自己定义的模块在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入#原创 2017-11-29 16:59:24 · 696 阅读 · 0 评论 -
python面向对象(二)之封装
封装定义: 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。 即“封装”就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(即类);封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。这就用到私有化,前面简单的讲了下,下面回具体原创 2017-12-08 22:13:23 · 394 阅读 · 0 评论 -
python面向对象(三)之继承
继承介绍 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承即常说的is-a关系。子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。 例子: 比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货原创 2017-12-08 22:18:18 · 316 阅读 · 0 评论 -
Python版飞机大战
前面学了java用java写了飞机大战这次学完python基础后写了个python版的飞机大战,有兴趣的可以看下。 父类是飞行物类是所有对象的父类,setting里面是需要加载的图片,你可以换称自己的喜欢的图片,敌机可以分为敌机和奖励,enemy为普通敌人的父类,award为奖励敌机的父类。各个类的基本属性主类的大概逻辑具体的代码:settings配置import pygameclass Sett原创 2017-12-04 19:40:29 · 2012 阅读 · 11 评论 -
python面向对象(一)
面向对象(object-oriented :简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。 面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,原创 2017-12-07 20:27:34 · 347 阅读 · 0 评论 -
python面向对象(六)之元类
元类1. 类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:In [13]: class ObjectCreator(object): ...: pass ...: In [14]: my_object=ObjectCreator()In [15]: print(my_object)<__main__.ObjectCr原创 2017-12-31 19:13:50 · 440 阅读 · 0 评论 -
Python列表(list)
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。创建列表 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可list = [1, 2, 3原创 2017-11-01 15:42:05 · 659 阅读 · 0 评论