导图社区 Python基础知识
纯干货!你要的Python基础知识点整理好了!本文对变量、语法、条件循环、面向对象、函数、语法规则符、文件的读取及保存、错误异常这些方面进行了全量笔记整理,这些知识点你还记得吗?
编辑于2020-02-17 08:15:46python 基础知识
变量=值
变量
值的标签:可随意命名,不建议与函数同名,建议有意义
值
数值
整形(int)
实例: 1 2 10
浮点型(float)
实例:1.23、3E-2
复数型(complex)
实例: 1 + 2j、 1.1 + 2.2j
布尔型(bool)
实例:True,False
序列(list)
字符串(str)
实例:'xxx',"xxx"
元组(tuple)
实例:('a',3,45,fg,[s,2],55) or a,d,s,5,d
列表(list)
实例:['a',3,45,fg,[s,2],55]
方法 描述 list.append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。 list.extend(L) 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。 list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。 list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。 list.pop([i]) 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。) list.clear() 移除列表中的所有项,等于del a[:]。 list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。 list.count(x) 返回 x 在列表中出现的次数。 list.sort() 对列表中的元素进行排序。 list.reverse() 倒排列表中的元素。 list.copy() 返回列表的浅复制,等于a[:]。
字典(dict)
实例:{'a':10,'b':52}
集合(set)
实例:{'a',10,'b,52}
集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素
内部可以是空,可以是数值,字符串,数列,甚至混合型
语法操作符
算术运算符
+,-,*,/,%,//,**
比较运算符
==,>,<,>=,<=,!=
赋值运算符
+=,-=,*=,/=,%=,//=,**=
逻辑运算符
and,or,not
位运算符
&,|,^,~,<<,>>
成员运算符
in,not in
身份运算符
is,is not
运算符优先级
算术运算符>位运算符>比较运算符>赋值运算符>身份运算符>成员运算符>逻辑运算符
条件循环
if 条件
if+比较运算符: elif+比较运算符:……else:
if 嵌套多层if语句
while循环
while+比较运算:判断为True 循环,为False中止
while+赋值运算orTrue:不为0或True,就循环,为0就中止
while+比较运算:else: 判断为True 循环,为False执行else
while 循环+if+break,while循环中有符合if判断 就中断遍历
while 循环+if+continue,while循环中有符合if判断 就跳过该条件继续遍历
for循环
for i in <sequence>: 遍历序列里的所有item,遍历完跳出
for i in range(n): 遍历序列里的所有item,遍历完跳出
for i in <sequence>:else: 遍历序列里的所有item,遍历完执行else
for 循环+if+break,for循环中有符合if判断 就中断遍历
for 循环+if+continue,for循环中有符合if判断 就跳过该条件继续遍历
pass
while True: pass
class MyEmptyClass: pass
迭代器
将一个序列中的元素一个一个取出,取一个用一个,可节约内存
取出函数:it=iter(list) 输出函数next(it)
class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): x = self.a self.a += 1 return x myclass = MyNumbers() myiter = iter(myclass) print(next(myiter))
class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): if self.a <= 20: x = self.a self.a += 1 return x else: raise StopIteration myclass = MyNumbers() myiter = iter(myclass) for x in myiter: print(x)
生成器
简化版的迭代器,使用yield一个一个接收数据,接收一个使用一个
import sys def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True: try: print (next(f), end=" ") except StopIteration: sys.exit()
面向对象
类(Class):初始化方法def __init__(self:),子方法def x(): 类的封装,继承及重写,__name__ 调用自己
错误异常
异常提醒
AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) FloatingPointError 浮点计算错误 GeneratorExit generator.close()方法被调用的时候 ImportError 导入模块失败的时候 IndexError 索引超出序列的范围 KeyError 字典中查找一个不存在的关键字 KeyboardInterrupt 用户输入中断键(Ctrl+c) MemoryError 内存溢出(可通过删除对象释放内存) NameError 尝试访问一个不存在的变量 NotImplementedError 尚未实现的方法 OSError 操作系统产生的异常(例如打开一个不存在的文件) OverflowError 数值运算超出最大限制 ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象 RuntimeError 一般的运行时错误 StopIteration 迭代器没有更多的值 SyntaxError Python的语法错误 IndentationError 缩进错误 TabError Tab和空格混合使用 SystemError Python编译器系统错误 SystemExit Python编译器进程被关闭 TypeError 不同类型间的无效操作 UnboundLocalError 访问一个未初始化的本地变量(NameError的子类) UnicodeError Unicode相关的错误(ValueError的子类) UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类) UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类) UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类) ValueError 传入无效的参数 ZeroDivisionError 除数为零
异常处理
try: except (ValueError,RuntimeError, TypeError, NameError): else: 异常执行except,正常执行else raise nameError() 抛出异常,可以调用自定义异常函数
文件的读取及保存
#写 with open('test.txt', 'w', encoding='utf-8') as f: f.write('test') #读 with open('test.txt', 'r', encoding='utf-8') as f: f.readlines()
语法规则符
注释:#
# 单行注释
''' ''' 多行注释
""" """ 多行注释
缩进行:(tab) 与“:”组合运用。带有冒号的必须缩进行,以表示从属关系
标识符 :_
多行符号: 末尾加\
空行:\n 不用也可以运行,使用函数既美观,又可读性强
同行多条语句: 中间加;
end="Xx",表示输入后 连续结果中间填充的内容,空格,标点符号 字母 数字 都可以
函数
定义函数
def xxx(参数):参数可以是多个,也可以是空函数
def f(a, b, /, c, d, *, e, f):--/前面的参数为强制参数,必须按顺序输入,*后的参数必须以关键词参数输入
调用函数
xxx(参数):1,必须按顺序输参数,2,可以是关键词参数,不需顺序,3,如果有默认参数 可以不输入,但必须放最后,4,不定长参数,(*参数)-元组,(**参数)-字典,其后面的参数必须以关键词参数输入.5,也可以用其他函数作为参数输入(比如函数装饰器)
函数中变量访问
变量作用域,变量的访问以 L(Local)局域函数中 –> E(Enclosing)闭包函数中 –> G(Global)全局中 –>B(Built-in)内建中 的规则查找 如果要在函数内改变全局变量的值,需要用global重新定义该变量的值 global a a=XX
匿名函数
lambda x, y:x + y ,也可以跟def 函数一样传递参数
工厂函数 创建各种序列 值
str(),list(),tuple(),set(),dict()
关键词函数(keyword) (判断,定义,引入,赋值,条件循环等作用)
import keyword/keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
BIF-内置函数 (built in functions)
dir(__builtins__)