看到这篇文章先别急着退,下面的一些小技巧绝对值得你去看看:
1、Python数据类型
Python有5个基本数据类型:
-
数字
-
字符串
-
列表
-
元组
-
字典
在Python3中所有的数据类型都被封装为类
2、Python基本运算符
Python有一个赋值运算符,称之为地板除://==
3、循环语句
Python支持while...else...和for...else...
4、列表
-
python2中range函数返回一个list,可以直接使用
-
python3中range函数返回一个range,需要转化为list才能使用
-
python3中不支持xrange函数
-
remove 和 del、pop的区别:
-
remove参数为列表中的单个元素,删除首次出现的指定值
-
del参数为list[index],删除list中指定index处的值
-
pop参数为列表的索引,删除指定索引处的值,并返回这个值
-
矩阵 != 二维数组,矩阵是一个数据元素有严格相同大小的二维数组
-
列表的深浅赋值会导致一个多维列表的操作很麻烦,所以碰到这种情况不妨使用numpy.array类,如:
In [31]: l1 = [[0]*5]*5
In [32]: l1
Out[32]:
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]]
In [33]: l1[2][3] = 1
In [34]: l1
Out[34]:
[[0, 0, 0, 1, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 1, 0]]
此时,使用numpy.array
In [35]: from numpy import array
In [36]: l2 = array([[0]*5]*5)
In [37]: l2
Out[37]:
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
In [38]: l2[2][3] = 1
In [39]: l2
Out[39]:
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
5、元组
声明一个包含单个值的元组,即使只包含一个值,也必须使用逗号,如:t = (1,)
6、字典
键在字典中是唯一的,而值可以重复。字典中的值可以是任意类型,但键必须是不可变类型,例如:字符串、数字、元组。
也就是说,可以这么声明一个字典:
d = {}
d[(1,2)] = 6
7、集合
-
集合其实就是一个只有键没有值的字典
-
集合中添加元素用:add()
-
集合中删除元素用:discard()
-
集合求并集,或者说两个集合相加:set1 | set2
-
集合求交集:set1 & set2
-
集合求差集:set1 - set2
-
集合不支持切片操作
8、内置函数
- python去除字符串中的空格非常建议使用:''.join(s.split()),这样,才能去掉:
-
普通空格:\x20
-
不间断空白符 :\xa0
-
全角的空白符:\u3000
-
当然,如果在知道是去掉普通空格可用s.replace(' ','')
- 如果知道列表中只有一个元素,那么我们提取那个元素时尽量使 用''.join(list),而不是list[0]
- 原因:比如我们有时使用正则表达式提取数据时返回一个列表,有的时候由于文本中没有那些值变回返回一个空列表,此时使用 list[0]就会报错,而使用''.join(list)就会返回一个空字符串。
- str.strip()函数不仅仅是删除两边的空格,还可以删除两边指定 的值哦,这一点非常好用,如:
-
x = 'abc' x = x.strip('ab')
- sort函数不能自定义排序规则,而sorted函数可以。其中在使用sorted函数时,有一点要注意:
-
sorted(ls,lambda x:x[0]) # 这样是错误的 sorted(ls,key = lambda x:x[0]) # 必须要带关键字key才行
- Python2有raw_input和input,两者用法不同。Python3只有input函数
-
Python2中,print是一个关键字,后接一个逗号就可以实现不换 行打印
Python3中,print是一个函数,实现不换行需要end参数
9、函数
python的函数参数有5种,分别是:
位置参数、默认参数、可变参数、关键字参数、命名关键字参数
- 位置参数:quadratic(a, b, c)
- 默认参数:personinfo(name, age, gender = 'Female'),默认参数必须在最右端
- 可变参数:getsum(*num)
- 关键字参数:personinfo(name, age, **kw)
- 命名关键字参数:personinfo(name, age, *, gender, city)
10、面向对象
- _xx:以单下划线开头的表示的是protected类型的变量
- __xx:双下划线表示的是私有类型的变量。
- __xx__:定义的是特例方法。
11、一些小技巧
-
使用链式判断
score = 82 if 80 <= score < 90: level = 'B' print(level)
-
使用关键字in
num = 1 if num in (1, 3, 5): type = '奇数' print(type)
-
使用any和all语句
math, English, computer = 90, 59, 88 if any([math < 60, English < 60, computer < 60]): print('not pass')
-
使用enumerate函数代替range(len(L))
L = ['math', 'English', 'computer', 'Physics'] for k, v in enumerate(L): print(k, ':', v)
好了,分享就到这里了,上面的小知识点你有多少知道的呢?
如果有什么好的小技巧,可以在下方进行评论哦!