python 小知识点
********************运算符********************************
1. '=' 和 '=='问题
*在c中,在if语句中把'=='写成'='不会报错,
如:if c == 1 写成 if c = 1
避免方法: if 1 == c,如果写成 if 1 = c编译器会报错
*在python中,不会出现这种情况,
因为:python不允许if条件中赋值
所以: if c = 1就会报错
*******快速交换字符******
如:交换x,y,z三个数
x,y,z = z,x,y
2. python中and和or,and,or,not优先级
优先级:not > and > or
and:返回第一个为假的值,若全为真就返回最后一个真
>>> 0 and 0
0
>>> 0 and 3
0
>>> 3 and 0
0
>>> 3 and 8
8
or:返回第一个为真的值,若全为假就返回0
>>> 0 or 0
0
>>> 0 or 9
9
>>> 9 or 0
9
>>> 11 or 9
11
3. *成员资格运算符
in:用于检查一个值是否在序列中,在就返回True,否则返回False。
*三元操作符(.. if .. else ..)
格式:return1 if 语句 else return2
如果if后的语句时真的就返回return1,否则返回return2
如:求a,b,c中的最小数
a if (a<b and a<c) else (b if b<c else c)
************************ BIF **************************
1. python中最重要的是??? 缩进!!!
python大小写敏感
*BIF(Buit-in-Functions),内置函数, 命令:dir(__builtins__)可以查看BIF
*python中支持一行写多个语句,语句用’;‘分隔
*python中支持一个语句写多行,每行后面用’\‘即可
2. python中使用print如何不换行呢?print默认换行,若不想换行如下:
print '*', #2.x版本
#print ('*',end=' ') #3.x版本
3. python中int()函数是将小数转换成整数,是向下取整
如:int(5.9)结果为5
使用int()函数时,希望可以四舍五入
方法:把要转换的数加0.5
如: 5.6 int(5.6 + 0.5) 结果为6
5.4 int(5.4 + 0.5) 结果为5
************************* 列表 ***********************
1. append()和extend()区别
append():将参数作为一个元素添加到列表的末尾
extend():将参数作为一个列表去扩展列表的末尾
如:>>> list1 = ['a','b','c']
>>> list1.append('dd')
>>> list1
['a', 'b', 'c', 'dd']
>>> list1.extend(['eee','fff'])
>>> list1
['a', 'b', 'c', 'dd', 'eee', 'fff']
>>> list1.append([11,22])
>>> list1
['a', 'b', 'c', 'dd', 'eee', 'fff', [11, 22]]
2. 切片操作
list_name[m:n]:是切出(n-m)个数
如:>>> list1
['fff', [11, 22], 'a', 'b', 'c', 'dd', 'eee']
>>> list1[2:5]
['a', 'b', 'c']
list_name[0]和list_name[0:1]是不一样的。
list_name[0]:返回第0个元素的值
如:>>> list1[0]
'fff'
list_name[0:1]:返回一个只含有第0个元素的列表
如:>>> list1[0:1]
['fff']
3. python列表支持负数索引
正常下标(从左到右),如: 0 1 2 3 4 5
负数下标(从右到左),如:-6 -5 -4 -3 -2 -1
4. 利用分片完成拷贝比直接赋值好
如: >>> list1 = ['a','b','c']
直接赋值:>>> list2 = list1
>>> list2
['a', 'b', 'c']
分片拷贝:>>> list3 = list1[:]
>>> list3
['a', 'b', 'c']
上面看起来是一样的,但是如果对list1进行操作
>>> list1.append(111111)
>>> list1
['a', 'b', 'c', 111111]
>>> list2 直接赋值的列表和原列表一起变换
['a', 'b', 'c', 111111]
>>> list3 分片拷贝的列表保持原样
['a', 'b', 'c']
list1:--------> ['a','b','c']
^ ^
list2:-----------| |
|
list3:---------> ['a','b','c']
5. 列表推导式(列表解析)
格式:[有关A的表达式 for A in B]
如:>>> [i*i for i in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
6.列表逆序
方法1:列表名.sort(reverse=True)
方法2:列表名.sort()
列表名.reverse()
7.列表:一个打了激素的数组
如:>>> list1 = [1,2,[3,4,[5,6]]]
>>> list1[2][2][0]
5
**********************函数***************************
在函数中想使用全局变量用关键字:global
在内部函数中想使用外部函数的变量用关键字:nonlocal
1. 访问内部函数
>>> def funOut():
... def funIn():
... print('ok')
... return funIn()
...
>>> funOut()
ok
>>> def funOut():
... def funIn():
... print('ok')
... return funIn
...
>>> funOut()()
ok