Python学习笔记

Python 中文编码的时候需要在头部指定编码


# -*- coding: UTF-8 -*- 或者 #coding=utf-8


Python 标识符有字母、数字、下划线组成。




所有的标识符可以包括英文、下划线开头,但是不能以数字开头。




Python 标识符是区分大小写(大小写敏感)




单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入。




以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识。




不能使用Python保留字(关键字)作为常数或变量数,或任何其他标识符名称。所有Python关键字只包含小写字母。


Python的代码块不使用大括号({})来控制类、函数以及其他逻辑运算判断。Python最具特色的就是用缩进来写模块。


所有代码块语句必须包含相同的缩进空白数量,否则就会报错,这是一个必须严格执行规则。


使用斜杠(\)将一行的语句分为多行显示。Python一般以新行作为为语句的结束符。但语句中包含[],{}或()括号就不需要使用多行连接符(\)。


Python 接收单引号(' ),双引号(" ),三引号(''' """) 来表示字符串,引号的开始与结束必须是相同类型的。三引号在文件的特定地点,被当做注释。


Python 单行注释采用#开头,Python没有块注释,所以现在多行注释也是采用的#开头。


Python 可以在同一行中使用多条语句,语句之间使用分号(;)分割。


Python 缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一行或多行代码构成代码组。


Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)


数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。


Python支持四种不同的数值类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
Python 使用"L"表示长整型。


Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。


Python加号(+)是字符串连接运算符,星号(*)是重复操作。


python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1。
从右到左索引默认-1开始的,最大范围是字符串开头。
如果取得一段子串的话,可以用到变量[头下标:尾下标],其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。


Python 列表是复合数据类型,列表用[]标识。
列表中的值分割也可以用到变量[头下标:尾下标],截取相应的列表.
从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
元组中只包含一个元素时,需要在元素后面添加逗号。
任意无符号的对象,以逗号隔开,默认为元组。


Python元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。


Python元字典(Dictionary):
Python元字典用"{}"标识。
字典由索引(key)和它对应的值value组成。Python元字典被称为关联数组或哈希表
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住(覆盖前面的)。
键必须不可变,所以可以用数,字符串或元组充当,所以不能使用列表[?]。


Python列表与Python元字典区别:
是有序的对象结合,字典是无序的对象集合


Python运算符
    Python算术运算符
        % 取模 - 返回除法的余数
        ** 幂 - 返回x的y次幂
        // 取整除 - 返回商的整数部分
    Python比较运算符
        != 不等于 - 比较两个对象是否不相等
<> 不等于 - 比较两个对象是否不相等
    Python赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符
    Python位运算符
ps:把数字看作二进制来进行计算
        & 按位与运算符
| 按位或运算符
^ 按位异或运算符
~ 按位取反运算符
<< 左移动运算符
>> 右移动运算符
    Python逻辑运算符
        and 布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。
or 布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。
not 布尔"非" - 如果x为True,返回False。如果x为False,它返回True。
    Python成员运算符
        in 如果在指定的序列中找到值返回True,否则返回False。
not in 如果在指定的序列中没有找到值返回True,否则返回False。
    Python身份运算符
        ps:身份运算符用于比较两个对象的存储单元
is is是判断两个标识符是不是引用自一个对象
is not is not是判断两个标识符是不是引用自不同对象


Python程序语言指定任何非0和非空null值为true,0或者null为false。


python并不支持switch语句进行多个条件语句判断。


Python提供了for循环和while循环(在Python中没有do..while循环)。


循环控制语句
reak语句->在语句块执行过程中终止循环,并且跳出整个循环
continue语句->在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass语句->pass是空语句,是为了保持程序结构的完整性。


函数len()返回列表的长度。range返回一个序列的数。


Python 支持格式化字符串的输出,将一个值插入到一个有字符串格式符%?(?->s,d,...)的字符串中。sprintf为字符串格式化函数。


del 可以用来删除对象引用地址


Python函数规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。


Python函数参数调用函数时可使用的正式参数类型:
必备参数->必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
命名参数->命名参数和函数调用关系紧密,调用方用参数的命名确定传入的参数值。
 你可以跳过不传的参数或者乱序传参,因为Python解释器能够用参数名匹配参数值。
缺省参数->调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
不定长参数->你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。


匿名函数->用lambda关键词能创建小型匿名函数。


变量作用域分为全局变量作用域或是局部变量作用域


From…import语句
Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。


dir()函数一个排好序的字符串列表,内容是一个模块里定义过的名字。


globals()和locals()函数
根据调用地方的不同,globals()和locals()函数可被用来返回全局和局部命名空间里的名字。


reload()函数->新执行模块里顶层部分的代码->重新导入之前导入过的模块。


Python异常处理
aise语句自己触发异常->类似抛出异常
可以自定义异常


Python面向对象
Python内置类属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块
__bases__ : 类的所有父类构成元素(包含了所有父类组成的元组)
python对象销毁(垃圾回收)通过内部跟踪变量(引用计数器)来追踪内存中的对象。
当对象被创建时,就创建了一个引用计数,当这个对象的引用计数变为0时(不需要时)由解释器在适当的时机,将垃圾对象占用的内存空间回收。
 
Python类的继承
语法 class 派生类名(基类名)


类的私有属性


__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。


类的方法在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数


类的私有方法


__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 slef.__private_methods


Python不允许实例化的类访问私有数据,但可以使用object._className__attrName 访问属性


Python正则表达式

Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。


待续...

你可能感兴趣的:(Python,语言)