变量赋值
a=b=c=1
a,b,c=1,2,3
= 就是创建新的引用并赋值
+= 就是给原引用赋值
查看变量的引用(地址) id(a)
判断数据类型
type()
ininstance(1,int)
5//2 结果是int
5/2 结果是float
>>> 2**5 #乘方
32
数据类型
python3 基本数字类型
int float bool complex
python2 基本数字类型
int long float complex
list
Q:list是一种有序的集合吗?
A:list的下标是有序的,相比于dict{}list是有序的
>>> list = [[]]*3
>>> list #list中的3个值的引用是一样的
[[], [], []]
>>> list[0].append(1)
>>> list
[[1], [1], [1]]
>>> id(list[0])
140665691778632
>>> id(list[1])
140665691778632
>>> id(list[2])
140665691778632
>>> list[1].append(2)
>>> id(list[0])
140665691778632
>>> list[2].append(3)
>>> list
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
set
一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
>>> s1 = set([2,3,4,2])
>>> s2 = set([2,3])
>>> s1|s2 #交集
{2, 3, 4}
>>> s1&s2 #并集
{2, 3}
正则表达式
- 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
变量的命名规则
变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头
不要将Python关键字和函数名用作变量名
字符串
str * int #str出现int次
>>> '3'*2
'33'
>>> inputstr = 'hello python,ni hao c ,zai jian python'
>>> replaceStr=re.sub(r"hello (\w+),ni hao (\w+),zai jian \1","PHP",inputstr)
>>> replaceStr
'hello python,ni hao c ,zai jian python'
字符串方法
strip():去除字符串首尾的指定字符串(默认为空格或换行符)
>>> s = '--hello--++word++'
>>> s.strip('-+')
'hello--++word'
reduce:累加的效果
>>> from functools import reduce
>>> def f(x,y):
... return (x+y)
...
>>> reduce(f,[1,3,5,7,9],100)
125
reduce(f,[1,3,5,7,9],100) 等价 f(f(f(f(1,3),5),7),9),100)
range()
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始
stop: 计数到 stop 结束,但不包括 stop
step:步长,默认为1
[注]
if start>stop:
step = 负数
else:
step = 正数
>>> list(range(15,3,-1))
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
zip(iterable, ...) zip(传多个迭代器)
>>> res = zip(['a','b'],[1,2])
>>> list(res)
[('a', 1), ('b', 2)]
获取当前时间
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2018, 7, 30, 12, 30, 39, 517022)
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2018-07-30 12:31:30'
format 格式化函数
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置 'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置 'world hello world'
reload()
reload()函数将以前导入过的模块再加载一次。重新加载(reload)包括最初导入模块时应用的分析过程和初始化过程。这样就允许在不退出解释器的情况下重新加载已更改的Python模块。
python 的内置函数
-
eval() ===> 执行表达式
>>> eval('%s*%s*%s*%s'%(7,7,7,7)) 2401
Number方法
-
round(x,n) ===> 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数
>>> round(100.02005456,5) 100.02005
python 内建模块
itertools
-
repeat() ===> 负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数
>>> import itertools >>> ns=itertools.repeat('A',3) >>> ns repeat('A', 3) >>> for i in ns: ... print(i) ... A A A