Python基础
单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
双下划线开头的 __foo 代表类的私有成员;
双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
索引:
从前到后是0开始,从后往前是-1开始
Python有五个标准的数据类型:
- Numbers(数字)包含int,long,float,complex(复数)四种
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
Python允许你同时为多个变量赋值。例如:a = b = c = 1
字符串:
python的字串列表有2种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
比如:s = 'ilovepython',s[1:5]的结果是love。结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p。
加号(+)是字符串连接运算符,星号(*)是重复操作。
列表:
list = [ 'a', 520 , 520, 'mm', 520] print list[1:3] 输出列表第二个至第三个元素 print list * 2 输出整个列表两次
元组:
用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
tuple = ( 'a', 520 , 520, 'mm', 520)
元组是不允许更新的,而列表是允许更新的。
字典:
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
数据类型转换:
对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可:int(a)
运算符
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
id() 函数用于获取对象内存地址。
is用于判断两个对象是否是同一个,==判断值相等。
Python pass是空语句,是为了保持程序结构的完整性。
通过使用del语句删除单个或多个对象,例如:del n
pi和e是常量
字符串更新:
st = 'hi baby' st[:3]+'beauty' print st hi beauty
r是按字符串本来面目取值(不转义)
可以像c一样格式化%c %d
Math模块
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
Python math 模块提供了许多对浮点数的数学运算函数。
Python cmath 模块包含了一些用于复数运算的函数。
要使用 math 或 cmath 函数必须先导入:import math dir(math)可以查看math模块命令 math.abs(-1)
import导入模块,模块名.函数名引用模块方法
from...import可以引入模块的一部分
命名空间:
函数默认在局部变量空间找对应变量,除非使用global指定,否则会报错
globals() 和 locals() 函数
根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字。
如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。
如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。
两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。
reload() 函数
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。
因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。