从AcWing - Django课程精简学习
学习经验:边学边查,先把常用的通读一遍即可
Python官方教程 5、数据结构(python3大数据结构:列表,集合,字典)
5.1 列表5.2 元组5.3 集合5.4 字典5.5 循环的技巧 6、模块7、输入与输出
7.1 格式化输出7.2、读写文件 8、异常处理9、类 5、数据结构(python3大数据结构:列表,集合,字典) 5.1 列表
就是数组,但是类型可以不一样
常用函数:
list.append(x)len(list)
列表推导式
squares = [x**2 for x in range(10)][0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
二维数组
>>> matrix = [..、 [1, 2, 3, 4],..、 [5, 6, 7, 8],..、 [9, 10, 11, 12],..、]
5.2 元组类似列表,就是不能改,定义的时候可以不用()
In [13]: t = (1, 2, 3) In [14]: t[0]= 4 ---------------------------------------------------------------------------TypeError Traceback (most recent call last)
元组打包和序列解包,用来交换便捷
序列解包
Python 还支持 集合 这种数据类型。集合是由不重复元素组成的无序容器。对应C++的set。基本用法包括成员检测、消除重复元素。集合对象支持合集、交集、差集、对称差分等数学运算。
创建集合用花括号或 set() 函数。注意,创建空集合只能用 set(),不能用 {},{} 创建的是空字典,下一小节介绍数据结构:字典。
以下是一些简单的示例
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}>>> print(basket) # show that duplicates have been removed{'orange', 'banana', 'pear', 'apple'}>>> 'orange' in basket # fast membership testingTrue>>> 'crabgrass' in basketFalse>>> # Demonstrate set operations on unique letters from two words...>>> a = set('abracadabra')>>> b = set('alacazam')>>> a # unique letters in a{'a', 'r', 'b', 'c', 'd'}>>> a - b # letters in a but not in b{'r', 'd', 'b'}>>> a | b # letters in a or b or both{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}>>> a & b # letters in both a and b{'a', 'c'}>>> a ^ b # letters in a or b but not both{'r', 'd', 'b', 'm', 'z', 'l'}
5.4 字典>>> tel = {'jack': 4098, 'sape': 4139}>>> tel['guido'] = 4127>>> tel{'jack': 4098, 'sape': 4139, 'guido': 4127}
5.5 循环的技巧
翻转reversed()和排序sorted() 函数
Python已经实现了很多包,直接安装调用即可
在处理文件对象时,最好使用 with 关键字。优点是,子句体结束后,文件会正确关闭,即便触发异常也可以。而且,使用 with 相比等效的 try-finally 代码块要简短得多:
写
>>> with open('workfile') as f:..、 read_data = f.read()>>> # We can check that the file has been automatically closed.>>> f.closedTrue
读
>>> def divide(x, y):..、 try:..、 result = x / y..、 except ZeroDivisionError:..、 print("division by zero!")..、 else:..、 print("result is", result)..、 finally:..、 print("executing finally clause")...>>> divide(2, 1)result is 2.0executing finally clause>>> divide(2, 0)division by zero!executing finally clause>>> divide("2", "1")executing finally clauseTraceback (most recent call last): File "
如上所示,任何情况下都会执行 finally 子句。except 子句不处理两个字符串相除触发的 TypeError,因此会在 finally 子句执行后被重新触发。
在实际应用程序中,finally 子句对于释放外部资源(例如文件或者网络连接)非常有用,无论是否成功使用资源。
9、类 构造函数,构造函数也可以传参数,甚至可以关键字对应,解包操作
定义成员函数
继承,调用基类的构造函数