08 2022 档案
摘要:Python拥有活跃的贡献者和用户支持社区,并且根据开放源代码许可条款,其软件可供其他Python开发人员使用,这是python之所以这么受欢迎的原因之一。 第三方库就是非python自带的,由其他人写的python模块。 pypi是python官方的第三方库仓库,所有人都可以下载第三方库或上传自己
阅读全文
摘要:模块的问题解决了代码过长不便维护的问题,但是如果不同的人编写的模块名相同怎么办?为了变量模块名冲突,python又引入了用目录来组织模块的方法,称为包。 例如: 为了避免fibo.py与其他模块冲突,我们可以选择一个顶层包名,比如my_fibo。 创建名为my_fibo的文件夹,将模块fibo.py
阅读全文
摘要:在编写程序的过程中把所有代码都写到一个脚本中肯定不便于维护和使用。 python有一种方法可以把定义放在一个脚本里,并在其他脚本或解释器的交互式实例中使用他们。 这样的脚本被称为模块。 模块中的定义可以导入到其他模块中。 案例: 在当前目录下创建一个名为fibo.py的文件,文件内容如下: # fi
阅读全文
摘要:自省 在日常生活中,自省(introspection)是一种自我检查行为。 在计算机编程中,自省是指这种能力:检查对象以确定它是什么类型、它有哪些属性和哪些方法。自省向程序员提供了极大的灵活性和控制力。 python中的自省函数有很多,凡是可以检查对象状态的函数都可以称为自省函数,常用的自省函数如下
阅读全文
摘要:那种仅限从一个对象内部访问的“私有”实例变量在 Python 中并不存在。 但是,大多数 Python 代码都遵循这样一个约定:以一个下划线开头的名称 (例如 _spam) 应该被当作是 API 的非公有部分 (无论它是函数、方法或是数据成员)。 这应当被视为一个实现细节,可能不经通知即加以改变。
阅读全文
摘要:python是一门动态语言,严格的来说python不存在多态。 def bark(animal): animal.bark() 上面的函数bark接收一个对象,并调用了对象的bark方法。对于python来说只要传入的对象有bark方法这个函数就可以执行,而不必去检查这个对象的类型。 class A
阅读全文
摘要:重写了父类方法后如果又要调用父类的方法怎么办呢? 还记得调用对象方法时可以通过类调用吗?看下面的案例: class A: def func(self): print('A') class B(A): def func(self): A.func(self) # 通过硬编码直接通过A.func调用 p
阅读全文
摘要:继承是面向对象一个非常重要的特性,如果没有继承那就不能称为类。 当定义一个类时,可以从现有的类继承,新的类称为子类(Sub Class)或派生类,被继承的类称为基类(Base Class),父类或超类(Super Class)。 派生类定义的语法如下: class SubClassName(Base
阅读全文
摘要:定义在类中的函数称为方法。根据调用的方式不同,分为: 对象方法 类方法 静态方法 魔术方法。 对象方法 定义在类中的普通函数,一般通过对象调用称为对象方法。 对象方法的定义 为了讲清楚对象方法的定义和调用,先看下面的案例 案例: 定义函数my_print,它接收一个Point对象,然后打印这个点的x
阅读全文
摘要:在编程的过程中经常会使用x.y的表达式,我把任何跟在点号之后的名称都称为属性。所以表达式x.y中,y是x的一个属性。 类有属性,对象也有属性。 类属性 类属性的定义 直接在类中定义的变量(与class语句只有一个缩进),就是类属性。 案例: 给Point类创建一个name属性用来表示点类的名称。 c
阅读全文
摘要:类 前面我讲到基本数据类型用来表示最常见的信息,但信息有无穷多种,为了更好的表达信息,我们可以创建自定义的数据类型。 一种数据类型就是一个类。例如整数,浮点数,字符串等。 类的定义 python中通过关键字class可以定义一个自定义的数据类型,基本语法如下: class 类名: 属性 方法 注意:
阅读全文
摘要:python中一个变量能够被访问的范围叫做作用域。根据作用域的大小分为: 全局变量 局部变量 全局变量 python是解释型编程语言,解释器在运行一个python程序时会在计算机内存中申请一块内存用来运行这个程序。全局变量在这块内存空间中都可以被访问。 直接顶格定义在函数外面的变量就是全局变量,在程
阅读全文
摘要:python解释器提供了70多个内置函数。 >>> import builtins >>> print(dir(builtins)) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingI
阅读全文
摘要:简单来说,lambda函数用来定义简单的,能够在一行内表示的函数。 语法格式如下: lambda arg1,arg2,... : experssion 案例: >>> f = lambda x,y: x+y # 等价于 >>> def f(x,y): ... return x + y lambda函
阅读全文
摘要:函数还有一个重要的功能就是返回结果。 python中使用return关键字来退出函数,返回到函数被调用的地方继续往下执行。 return可以将0个,1个,多个函数运算完的结果返回给函数被调用处的变量。 函数可以没有返回值,也就是说函数中可以没有return语句,这时函数返回None,例如上面我们定义
阅读全文
摘要:定义函数时()里的参数叫做形参(形式参数),它只是一个变量名,接受调用时传递的实参,仅供函数体中的代码调用。 函数调用时,传入()里的参数叫实参(实际参数),它是实际的数据,会传递给形参。 形参 根据形参的功能和定义方式可以分为: 必须参数 默认参数 动态参数 位置动态参数 关键字动态参数 必须参数
阅读全文
摘要:函数的定义 python中定义一个函数使用def(define的缩写)关键字,语法格式如下: def <函数名>([参数列表]): <函数体> return <返回值列表> def与函数名中间又一个空格 函数名的规则同变量名 函数名后的一对小括号必须写,紧跟着的冒号不能少 函数体与def语句通过四个
阅读全文
摘要:循环有时候需要主动中断来提高程序执行效率。 看下面的案例: >>> ls = [60,59,78,80,56,55] # ls中存放的是所有学生的成绩 # 要判断是否有同学不及格 >>> for i in ls: ... if i < 60: ... print('有同学不及格') 有同学不及格 有
阅读全文
摘要:在程序的编写过程中会出现各种错误,语法错误在程序启动时就会检测出来,它是程序正常运行的前提条件。 程序中还有一种错误发生在程序运行后,可能是由于逻辑问题,又或者是业务发生了改变,为了能让用户有更好的体验,加强代码的健壮性,我们需要对这些错误进行处理,也叫异常处理。 回忆我们前面关于成绩评价的案例,当
阅读全文
摘要:for循环的语法格式如下: for <循环变量> in <遍历结构>: 代码块 关键字for+空格+<循环变量>+关键字in+<遍历结构>+冒号组成for语句 代码块通过缩进和for语句形成包含关系 for 循环会依次取出遍历结构中的元素,然后赋值给循环变量,每次遍历都会执行代码块,直到取出遍历结构
阅读全文
摘要:while条件循环的语法格式如下: while <条件>: 代码块 while关键字空格后接条件表达式末尾加上冒号组成while语句 代码块中的代码通过4个空格和while语句形成包含关系 while条件循环的运行流程图如下: while语句首先计算<条件>表达式,如果结果True,则执行对应代码块
阅读全文
摘要:if单分支 if单分支的语法结构如下: if <条件>: 语句块 注意条件语句结束后要紧跟冒号 语句块是if条件满足条件后执行的一条或多条语句组 语句块中的语句通过缩进与if语句所在的行形成包含关系 缩进按照规范为4个空格 if单分支的执行流程图如下: if语句首先会计算<条件>表达式,如果结果为T
阅读全文
摘要:程序的执行和人生一样,有按部就班,有选择,也有循环。 计算机程序由三种基本结构组成: 顺序结构 分支结构 循环结构 顺序结构 人生的主线是生老病死,程序的主线是从上往下。 顺序结构是程序执行的基本流程,它会按照代码从上往下依次执行。 例如: >>> a = 1 >>> a += 1 >>> prin
阅读全文
摘要:None是内置常量,是NoneType的唯一真值。None经常用于表示缺少值。 python中None的典型用法: 定义函数时的默认参数占位符 >>> def func(x, y=None): pass 如果函数没有返回值默认会返回None >>> def func(): pass >>> res
阅读全文
摘要:思考,下面这种个人信息使用前面学习的数据类型该如何表达。 多维数据,通过前面学习的数据类型都不好表达。 python中的字典类型就能很方便的表达多维数据。字典类型利用集合元素的不重复特性作为key与对应的值形成键值对。然后因为集合中的元素都是可哈希,非常方便建立哈希表来做索引查询对应的值。 字典的定
阅读全文
摘要:python中还有一个数据类型是布尔型(bool),只有两个值,也是内置常量: True:真 Flase: 假 一般用于条件判断。 >>> True True >>> Flase False >>> type(False) bool >>> type(True) bool 注意首字母要大写。 布尔类
阅读全文
摘要:python中集合(set)类型与数学中的集合类型概念类似,用来表示无序不重复元素的集合。 集合的定义 集合使用一对大括号{}进行定义,元素之间使用逗号隔开。 注意:集合中的元素必须是不可变数据类型。 >>> a = {1, 2, 3, 4, 5, 6} >>> print(type(a)) < c
阅读全文
摘要:Python 的赋值语句不复制对象,而是创建目标和对象的绑定关系。 >>> a = 1 >>> id(a) 140731276990112 >>> b = a >>> id(b) 140731276990112 上面的第行代码将值1的地址绑定给变量a id(a)返回变量a中的值的内存地址 接下来语句
阅读全文
摘要:python中的数据类型根据底层内存机制分为可变与不可变两种。 id() 内建函数id()返回值的内存地址。 >>> a = 1 >>> id(a) 4382612480 这里的内存地址是解释器里转换成十进制整数的虚拟地址。 可变类型 可变数据类型的数据实例,也称为可变对象。可变对象可以在其id()
阅读全文
摘要:元组(tuple)是表示有序不可变元素的集合,元素可以是任意类型,元组就是不可变的列表。 元组的定义 元组通过一对小括号进行定义,元素之间使用逗号隔开。 >>> a = () # 空元组 >>> print(type(a)) <class 'tuple'> >>> b = ('a', 'b', 'c
阅读全文
摘要:python中列表(list)用来表示有序可变元素的集合,元素可以是任意数据类型。列表是一种复合数据类型,它是容器结构,可以包含其他类型的数据,在开发过程中会大量应用。 列表的定义 列表由一对中括号进行定义,元素与元素之间使用逗号隔开。 空列表的定义 >>> a = [] >>> print(a,
阅读全文
摘要:在编写程序中经常需要动态输出字符串。例如,我们通过程序计算计算机的内存利用率,然后输出 10:15 计算机的内存利用率为30% 其中下划线部分的内容会动态调整,需要根据执行结果进行填充,最终形成上述格式的字符串输出。 这种功能就需要使用到字符串格式化操作,python中支持三种形式的字符串格式化:
阅读全文
摘要:通过内建函数dir可以返回传入其中对象的所有方法属性名列表。 >>> print(dir(str)) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__
阅读全文
摘要:字符串类型是编程语言里非常重要的数据类型,因为几乎所有的程序主要做的事情就是处理字符串,这个随着大家的学习会有深入的体会。 字符串的定义 python中字符串(str)是使用单引号,双引号,三引号包裹起来的字符的序列,用来表示文本信息。 >>> a = 'a' # 单引号 >>> b = "bc"
阅读全文
摘要:python中等号=是赋值运算符,而不是数学意义上的等于号。 注意python解释器会先计算=右边的表达式,然后将结果赋值给=左边的变量。请始终记住这一点,初学者很容易理解错误。 >>> res = 1 # 定义变量res赋值为1 >>> res = res + 1 # 先计算res + 1在赋值给
阅读全文
摘要:算术运算是计算机被发明的初衷,所有的编程语言都支持算术运算。Python中通过算术运算符来进行算出运算,下标列出Python中所有支持的算术运算符。 | 运算符 | 描述 | | | | | + | 加法运算符 1+1 | | - | 减法运算符 3-2 | | * | 乘法运算符 9*9 | |
阅读全文
摘要:python中浮点数用float表示,它与数学中实数的概念一致,简单理解为小数。 与整数一样,浮点数可以直接使用,看下面的代码。 >>> pai = 3.14 >>> type(pai) float 浮点数的表现形式 在python中浮点数最常见的表示形式是a.b的格式,也可以表示为科学计算法。例如
阅读全文
摘要:python中整数类型用来表示数学概念中的整数,包含正整数,负整数和0。 在python中整数可以直接使用,看下面的代码: >>> n = 88 # 正整数 >>> n1 = -88 # 负整数 >>> n2 = 99 + 1 # 算术计算 print函数和type函数 python提供了内建函数p
阅读全文
摘要:在编程语言中变量是指能够存储和表示数据的抽象概念,可以理解为一个存放数据的容器。通过变量名可以访问变量中的值。 变量的定义 定义变量就是将数据放入变量,这个过程叫做赋值。几乎所有编程语言都是使用等号=作为赋值运算符,语法格式如下: >>> name = value name表示变量名,value表示
阅读全文
摘要:思考,是上面的苹果堆好处理(运输,存储,加工)还是下面有包装的苹果好处理。 什么是数据类型 数据类型简单的理解,其实就是为了方便处理(传输,存储,运算)数据,对数据做的包装,不同的类型就是不同的包装。 编程语言通过一些复杂的计算机物理底层机制,创造了不同类型的数据,用来表示现实世界中的不同信息,以便
阅读全文
摘要:IDE是什么? 在学习python 的过程中经常会听到IDE工具。那什么是IDE呢? IDE是 Integrated Development Environment的缩写,中文翻译为集成开发环境,一般包含代码编辑器,编译/解释器,调试器和图像用户界面等工具,它是开发程序的工具集合。 使用IDE工具来
阅读全文
摘要:python程序的运行方式有两种: 1. 交互式 在命令行窗口输入命令 python 进入python解释器交互式客户端,在窗口输入任意python代码,客户端窗口都会立即返回运行结果。 当关闭客户端窗口后,代码不会保存。这种交互式方式一般用来进行测试,不是正式的运行方式。 2. 脚本式 按照惯例学
阅读全文
摘要:上一节我们讲到了环境变量PATH,那如何设置它的值呢? windows系统设置环境变量的步骤如下: 右键【我的电脑】-》【属性】-》【高级系统设置】-》【环境变量】 在用户环境变量中找到Path,如果没有就新建一个。然后双击,打开编辑页面。 左边是设置好的路径列表,右边是操作按钮,把你想要设置的路径
阅读全文
摘要:在windows下进行python开发,需要经常使用cmd命令行工具。打开命令行工具有很多种方法,最简单的就是win键+R键弹出运行窗口,然后输入cmd, 就会打开下面这样的窗口。 不同版本,可能配色有所不同,但功能一致。它是windows系统下的一个shell程序,程序名为cmd.exe,感兴趣的
阅读全文
摘要:安装python其实就是安装python解释器。 python解释器 python解释器就是翻译python代码给计算机执行的一个程序。它的安装非常简单,在官网下载相对应平台的安装程序即可。 注意:目前python有两个大的版本,2.x和3.x。2.x是遗产,3.x是现在和未来。当然我们的教程是py
阅读全文
摘要:前面我们知道了python的最大特点是简单,那么python的功能是否也很简单呢? 肯定不是,不然python也不会这么受欢迎。 python是一门全能型的编程语言,应用领域非常广泛,几乎所有大中型互联网企业都在使用Python,例如国外的Google,YouTube,DropBox,国内的腾讯,阿
阅读全文
摘要:Python是荷兰人 Guido van Rossum (国内昵称龟叔)于1989年圣诞节期间开发出来的。 据龟叔的自述记载,Python语言是他在圣诞节期间为打发时间开发出来的。 选择Python作为该编程语言的名字,是取自英国20世纪70年代首播的电视剧《蒙提·派森的飞行马戏团》(Monty P
阅读全文
摘要:前面我们知道了高级编程语言计算机是不能直接识别的,需要通过翻译成机器码然后交由计算机执行。 根据不同的翻译机制,又分为编译型和解释型。 注意,翻译源代码是一个非常复杂的过程,大致包括词法分析,语法分析,语义分析,性能优化,目标代码生成等五个步骤。在初学阶段没有必要研究这个,如果感兴趣可以阅读《编译原
阅读全文