python总结

参考:

https://www.runoob.com/python/python-object.html

python变量

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

以双下划线开头的 __foo 代表类的私有成员。

以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

 

Python 可以同一行显示多条语句,方法是用分号 ; 分开。

 

Python语句中一般以新行作为语句的结束符。

但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

total = item_one + \
        item_two + \
        item_three

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

 

python 中多行注释使用三个单引号(''')或三个双引号(""")。

 

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,

# 不换行输出
print x,
print y,

# 不换行输出
print x,y

 

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

 

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "john"

以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。

 

可以使用del语句删除一些对象的引用。

del var1[,var2[,var3[....,varN]]]]

Python有五个标准的数据类型:

  • Numbers(数字):是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。
  • String(字符串)
  • List(列表): 是 Python 中使用最频繁的数据类型。
  • Tuple(元组):元组不能二次赋值,相当于只读列表。
  • Dictionary(字典):最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

 

Python支持四种不同的数字类型:

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制]): 32L,231l
  • float(浮点型)
  • complex(复数): a+bj,  complex(a,b) 。复数的实部 a 和虚部 b 都是浮点型。

注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。

 

python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。下标可以为空表示取到头或尾。Python 列表截取可以接收第三个参数,参数作用是截取的步长。

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

print str * 2       # 输出字符串两次
print str + "TEST"  # 输出连接的字符串

列表的操作和字符串类似。

 

数据类型转换:

 

变量是存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

运算符:

位运算符:&,|,^(异或),~(取反),<<,>>

逻辑运算符:and,or,not

成员运算符:in,not in

身份运算符用于比较两个对象的存储单元:

注: id() 函数用于获取对象内存地址。

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

 

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

 

在 python 中,while … else 在循环条件为 false 时执行 else 语句块:

for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

Python for 循环语句

1. 遍历对象

2. 遍历索引

 

Python pass 是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。

 

Python math 模块提供了许多对浮点数的数学运算函数。

Python cmath 模块包含了一些用于复数运算的函数。

查看 math 查看包中的内容:

dir()返回的列表容纳了在一个模块里定义的所有模块,变量和函数。如下一个简单的实例:

import math
dir(math)

----
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

 在这里,特殊字符串变量__name__指向模块的名字,__file__指向该模块的导入文件名。

字典:键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

对象类型:

  • 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

  • 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

  • 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

  • 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象传可变对象

如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。如果要给函数内的全局变量赋值,必须使用 global 语句。

 

Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。还有datetime模块

 

调用函数时可使用的正式参数类型:

  • 必备参数:必备参数须以正确的顺序传入函数。
  • 关键字参数:类似于键值对,允许函数调用时参数的顺序与声明时不一致。
  • 默认参数:默认参数的值如果没有传入,则被认为是默认值
  • 不定长参数:前面加个*

 

python模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。

当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数

reload(module_name)

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

搜索路径是一个解释器会先进行搜索的所有目录的列表。

当你导入一个模块,Python 解析器对模块位置的搜索顺序是:

  • 1、当前目录
  • 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
  • 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。

模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

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

如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。

如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。

 

Python中的包

包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。

简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包.

 

 

BaseException所有异常的基类
Exception常规错误的基类

raise语法格式如下:

raise [Exception [, args [, traceback]]]

# 定义函数
def mye( level ):
    if level < 1:
        raise Exception,"Invalid level!"
        # 触发异常后,后面的代码就不会再执行
try:
    mye(0)            # 触发异常
except Exception,err:
    print 1,err
else:
    print 2

 

class ClassName:
   '类的帮助信息'   #类文档字符串
   class_suite  #类体

类的帮助信息可以通过ClassName.__doc__查看。

class_suite 由类成员,方法,数据属性组成。

 

可以添加,删除,修改类的属性。

Python内置类属性

  • __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
  • __doc__ :类的文档字符串
  • __name__: 类名
  • __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
  • __bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

 

Python 使用了引用计数这一简单技术来跟踪和回收垃圾。在 Python 内部记录着所有使用中的对象各有多少引用。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值