Python基础知识学习(小甲鱼)
PYTHON
优先级
- not > and > or
短路逻辑
- and
- 如果逻辑表达式中的第一个条件为假,则整个表达式的结果必定为假,此时直接返回假。如果第一个条件为真,则继续计算后续的表达式,并返回最后一个表达式的结果。
- or
- 如果逻辑表达式中的第一个条件为真,则整个表达式的结果必定为真。如果第一个条件为假,则继续计算后续的表达式,并返回最后一个表达式的结果。
分支循环
-
if condition1:
statement(s)
-
elif condition2:
statement(s)
-
elif condition3:
statement(s)
条件表达式(三元操作符)
-
进行举例
-
x,y = 4,5
if x < y:
small = x
else:
small = y
可写成 small = x if x < y else y
循环语句
while循环
-
while 条件:
循环体
for循环
-
for 目标 in 表达式 :
循环体
range函数
- 语法: range([start],[stop],[step])
range()
函数生成的范围是左闭右开。
break语句
- 结束本层循环
continue语句
- 当前位置结束本次循环,重新开始下次循环
列表
- 创建一个列表 member = [1,2,3,4]
增删改查
-
append()
用于向列表末尾添加一个元素 -
extend()
用于向列表末尾添加多个元素 -
insert(n,xxx)
用于向列表中第n个元素前插入一个元素 -
remove()
用于从列表中删除某个元素 括号内为元素 -
del()
用于从列表中删除某个元素 括号内为元素的位置(从0开始) -
pop()
用于从列表中取出最后一个元素 -
切片(介绍如下)
-
从一个列表中截取一部分元素,创建一个新的列表。
-
start_index
:开始切片的索引(包含在切片中)。 -
end_index
:结束切片的索引(不包含在切片中。例如
-
original_list = [1, 2, 3, 4, 5]
new_list = original_list[1:4]/# new_list 将会是 [2, 3, 4] (前包后不包)
-
拷贝
-
新列表=原列表.copy() (浅拷贝)
-
也可用切片进行拷贝 (:) new_list = original_list[ : ]
-
coun() 计算列表中相同元素的个数
-
index() 可索引(查找)列表元素 返回值是第一个的索引值
-
reverse() 用于将列表中元素倒序
-
sort() 将列表中元素从小到大排序
列表推导式
- [expression for item in iterable if condition]
- expression表示一个表达式
- item表示一个可迭代对象中的每一个元素
- iterable表示一个可迭代对象
- if condition是可选 的条件语句
元组
- 不可修改
- 元组只包含一个元素时,需要在最后一个元素后面加上逗号
- 可以使用 +(拼接) *(重复)等操作符
- 查看方式和列表相同
字符串
- 定义一个可以跨越多行的字符串方法
- ''' ''' 三引号字符串通常在不赋值的情况下当做跨行注释使用
- \ \ \
- ( )
- split(分隔符) 可以将字符串分割为一个列表
序列
- id()变量名:返回一个代表指定对象的唯一标识的整数值
- is 和 not is // in 和 not in
- del
- list方法
- 元组转换为列表
- c = (1,2,3,4)
- c = list(c)
- sorted(iterable, key=None, reverse=False)
- 对序列进行排序
- iterable:要排序的序列 (列表 元组 字符串)
- key : 可选
- reverse :可选 标识是否按照降序进行排序 True False
- sorted()函数返回一个新的排序后的列表,而非修改原始序列。
- 若要就地对原始列排进行排序,可以使用列表的sort()方法 但sort只能处理列表
- enumerate()将每个元素插入枚举
- zip()返回由各个参数的序列组成的元组
字典
字典的创建
- fromkey()方法 : 用于创建并返回一个新的字典。
- dict1 = {}
- dict1.fromkeys((1,2,3))
- dict2 = {}
- dict2.fromkeys((1,2,3),"Number")
- dict3 = {}
- dict3.fromkeys((1,2,3),('one','two','three'))
- 注意 键需要是 字符串 数字 元组等
字典的访问
- keys() 用于返回字典中的键
- dict1.keys()
- values() 用于返回字典中的值
- dict1.values()
- items() 用于返回 键值对
- get() 方法提供更宽松的查找方式
- 例如希望找不到数据时返回指定的值
- dict.get(100,"没找到")
杂项
- clear()
copy()
pop()
- pop()是给定键弹出对应的值,popitem()是随机弹出一个项
setdefault()
与get相似update()
更新字典
集合
-
aa = set([])
-
aa.remove() aa.discard() 如果遇到集合中没有的元素 前者抛出异常 后者静默处理
-
aa.add()
-
for each in aa:
print(aa,end = '')
-
aa.update()
-
aa = frozenset() 创建一个不变的集合
-
aa.pop()
-
aa.clear()
-
len(aa)
函数
参数
- def MyFirstFunction(name):
- 函数定义过程中的 name 是形参 表示占据一个参数位置
- MyFirstFunction(传递进来的name) 此name为实参
- 关键字参数 ‘
- 例如 def function(name,words):
- print(name + words)
- function(name='a',words='b')
- 默认参数 在参数中给定默认值,则在未给实参时输出默认值
- function()
- 收集参数
- 一个*号代表列表 两个代表字典
局部变量与全局变量
- global 在函数内部访问和修改全局作用域中的变量
- nonlocal 用于在嵌套函数中访问和修改外部函数作用域中的变量
nonlocal
不能修改全局作用域中的变量,而global
不能修改嵌套函数外部作用域中的变量- L E G B 优先级从高到低
- 局部作用域 - 嵌套函数的局部作用域 - 全局作用域 - 内置作用域
内嵌函数和闭包
装饰器
- 允许你在不修改函数本身的情况下,通过添加额外的功能来增强函数或类的功能。
- 装饰器本质上是语法糖
生成器
- 生成器是一种特殊的迭代器。他可以逐个产生值,而非一次性全部产生。
- my_generator = (x * 2 for x in range(5)) 生成器表达式
- 可使用 next() 或者在 循环中使用该生成器
文件
- 打开文件
- file = open('文件路径','打开模式')
- r为只读模式 w为覆写模式 a为追加模式
- wb是文件写入模式的一种,代表write binary 以二进制写入方式打开文件(w)代表写入
- 阅读文件
- 使用read()
- 例如 count = file.read()
- print(count)
- 写入文件
- file.write()
- 关闭文件
- file.close()
path模块
- 调用
- from pathlib import Path
- 使用字符串创建路径对象
- path = Path(''path/to/file.txt'')
- 获取文件名和父目录
- path.name file.txt
- path.parent path/to
- 获取绝对路径
- path.resolve()
- 判断路径或者文件是否存在
- path.exists()
- 判断是否是文件或者目录
- path.is_file() path.is_dir()
- 创建目录:可以使用
.mkdir()
方法创建目录 - 列出目录内容:使用
.iterdir()
方法可以列出目录下的所有内容(包括文件和子目录) - 删除文件或目录:可以使用
.unlink()
方法删除文件,使用.rmdir()
方法删除空目录,使用.rmtree()
方法删除非空目录。
异常
异常捕捉
- try
- 执行代码
- except
- 发生异常时会执行的代码
- 一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组
- 一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
- else
- 没有异常时执行的代码
- finally
- 不管有没有异常都会执行的代码
抛出异常
- raise [Exception [, args [, traceback]]]
类和对象
继承
- 构造函数
- 为对象设置初始化状态,给对象的属性赋初值,可以接受参数。
- 创建对象的时候,构造函数会自动被调用。
- def _ int _(self,name,age)
- super()函数
- 用于调用父类的方法
- 通常在子类的构造函数中使用
- 能够自动帮你找出所有基类以及对应的方法
有关进制
- int(数字,几进制) 可转换为十进制
- ord() 返回对应的ASCII码值 用十进制表示
- chr() 返回某个十进制数对应的ASCII 码 字符
函数
- a.replace('想替换的字符','替换成的字符')
- '分隔符'
join()
方法用于将一个可迭代对象(如列表、元组、字符串等)中的元素连接成一个字符串。- separator.join(iterable)
- 要插入的分隔符 要连接的可迭代对象
- str.maketrans(x[, y[, z]])
- 用于创建字符映射转换表
- x为要替换的字符 y为替换成的字符 z为要删除的字符
- str.translate(table)
- table是一个映射表 根据makertrans创建
- strip() 去掉头尾空格
- lower() 转换为全小写
- isupper(): 判断字符串中的所有字母是否都是大写字母
- islower()`: 判断字符串中的所有字母是否都是小写字母