Python
2025-05-02 00:13:17 0 举报
AI智能生成
Python是一种流行的高级编程语言,以其易读性和简洁的语法而闻名。它支持多种编程范式,包括面向对象、命令式、函数式和过程式。Python广泛应用于数据科学、网络开发、自动化脚本编写以及AI和机器学习领域,被认为是一种多用途的工具,适用于快速开发各种应用程序。Python的核心内容侧重于代码的可读性与简洁性,使得程序员能够用更少的代码行表达概念。它是一种解释型语言,意味着代码在执行前不需要编译。此外,Python拥有庞大的标准库和第三方模块,提供了丰富的功能支持。作为一种动态类型语言,Python在类型检查方面表现出更大的灵活性,但也因此牺牲了一些性能优势。尽管如此,它仍被众多开发者和企业所青睐,用于开发快速和高效的软件解决方案。
作者其他创作
大纲/内容
数据类型
数字
整数
浮点型
字符
布尔
元组
列表
字典
集合
运算逻辑
顺序
条件
if xx:<br> xx <br>else:<br> xxx
contine
break
循环
for i in range()<br>
数学函数
导包 import Math<br>
round()<br>
四舍五入
abs<br>
round()<br>
向下取整??那负数比如 -1.5 取整是-2还是-1??<br>
xx<br>
绝对值
xx<br>
向上取整
map<br>
reduce
filter
range迭代器<br>
口诀:列表其实很简单,步长为正,从左向右,步长为负,从右向左,左闭右开。<br>
range[start,end,step]<br>
range[0,len(list)]<br>
字符串
创建
a=’cat‘ <br>b="i am is tom"
单字符创建
双字符创建
删除
del aa<br>
重复删除对象会报错
修改
a+="bbb"<br>
aaa="abc"<br>aaa[0]=1
TypeError: 'str' object does not support item assignment
查询
find(subStr,start,end)<br>
查询符合的元素,如果存在则直接序列的下标,如果不存在,则返回-1
index(subStr,start,end)<br>
查询匹配的元素,如果存在,<font color="#e74f4c">则返回对的序列下标,如果不存在则报错</font>
ValueError: substring not found
字符串函数:<br>
"aaa".title()<br>
返回结果 首字母大写<br>
“aaa”.upper()<br>
返回结果 全部大写
"aaa".lower()<br>
返回结果 全部小写
序列
包括:字符串、列表、元组、字典<br>
列表
基本操作
创建
name_list = ['TOM', 'Lily', 'ROSE']
增
append(元素)<br>
最后位置追加元素(追加元素是列表,则直接最后位置追加列表)<br>name_list.append('xiaoming')<br>name_list.append([11, 22])
name_list.insert(下标, 数据)<br>
# 1. 列表数据可改的 -- 列表可变类型<br># 2. append函数追加数据的时候如果数据是一个序列,追加整个序列到列表的结尾<br>name_list.insert(1, 'aaa')<br>
extend
extend() 追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾name_list.extend('xiaoming')<br>name_list.extend(['xiaoming', 'xiaohong'])
删
del list[0]<br>del list<br>
支持删除对象<font color="#e74f4c">(注意不存在则会报错)</font><br>
支持删除序列指定位置的元素<font color="#e74f4c">(注意不存在则会报错)</font>
list.remove("张三")<br>
删除符合条件的元素<font color="#e74f4c">(注意不存在则会报错) </font>ValueError: list.remove(x): x not in list<br>
list.pop()<br>list.pop(1)
删除指定下标的数据,如果不指定下标,默认删除最后一个数据,(<font color="#e74f4c">注意序列为空,则会报错),并返回被删除的数据</font><br>
list.clear()<br>
改
list[1]=xxx<br>
指定位置修改
list1.reverse()
逆序
list1.sort()
list1.sort(reverse=False)
查
下标查询
list[1] 指定位置查询 (支持多级嵌套 [[1,2],[3,4]] list[0][2] )<br>
name_list.index('TOM')
查询元素位置,不存在的元素 报错 ValueError: 'TOMS' is not in list
name_list.count('TOM')
查询元素出现的数量,不存在的元素,返回0
len(name_list)
查询数组元素个数
'TOM' in name_list
'TOMs' not in name_list
复制
name_list.copy()
<font color="#e74f4c"><b>copy()是浅拷贝,以下两者地址不相同<br></b></font>name_list = ['TOM', 'Lily', 'ROSE', [1, 2, 3]]<br>newList = name_list.copy()<br>print(id(name_list))<br>print(id(newList))<br><br><b><font color="#e74f4c"># 以下地址相同<br></font></b>print(f'当前值是 %s' % id(name_list[3])) <br>print(f'当前值是 %s' % id(newList[3]))<br>
遍历
i = 0<br>while i < len(name_list):<br> print(name_list[i])<br> i += 1
for name in name_list:<br> print(name)
排序
list.sort(key=iterator,reverse=True/False(默认是False))-->None<br>
对序列进行排序,iterator是迭代器
序列内置函数
len(list)<br>
查询序列元素个数
list(iterator) 获取迭代器对应的序列结果 ??<br>
sorted(list,key=iterator,reverse=True) ->List<br>
对序列进行排序,iterator是迭代器<br>
list.count(“张三”)<br>
查询序列某个元素出现的次数,不存在返回0
map(filter() ???<br>
元组
基本操作
增
NA<br>
删
NA<br>
改
元素是不可变,不允许修改,修改会报错
元素是可变类型,可以修改
t2 = ('aa', 'bb', ['cc', 'dd'])<br>t2[2][0] = 'TOM'
查
t1[0]
t1.index('bb')
值不存在,会报错 #ValueError: tuple.index(x): x not in tuple
t1.count('aa')
len(t1)
字典
基本操作
增
dict = {'name': 'TOM', 'age': 20, 'gender': '男'}
删
del dict
重复删除对象会报错
del dict["name"]<br>
name不存在 报错 KeyError: 'names'<br>
dict.clear()<br>
清空
改
dict["name"="小犇"]<br>
dict.update()<br>
用法一: dict.update({"name":"小犇","height":"170})<br>
用法二:dict.update(a=1,b=2)<br>
查
dict['name']
查询对应的value,不存在则报错 KeyError: 'names'<br>
dict.get('name')<br>
查询对应的value,不存在则返回None<br>
dict.get('name','Lily')<br>
数据不存在,支持返回兜底默认值
dict.keys()<br>
查找字典中所有的key,返回可迭代对象 <class 'dict_keys'>
dict.values()
查找字典中的所有的value,返回可迭代对象 <class 'dict_values'>
dict.items()
查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典key对应的值<br>dict_items([('name', 'TOM'), ('age', 20), ('gender', '男')])
遍历
for key in dict1.keys():<br> print(f'key={key},value={dict1.get(key)}')<br>
key=name,value=TOM<br>key=age,value=20<br>key=gender,value=男
for item in dict.items():<br> print(item)
('name', 'TOM')<br>('age', 20)<br>('gender', '男')
for key, value in dict1.items():<br> # print(key)<br> # print(value)<br> # 目标: key=value<br> print(f'{key}={value}')
# xx.items(): 返回可迭代对象,内部是元组,元组有2个数据<br># 元组数据1是字典的key,元组数据2是字典的value
排序
检索
集合
基本操作
创建
s1 = {10, 20}
s2 = {[1,2,3]}
报错 TypeError: unhashable type: 'list' 猜测底层是hash索引<br>
s2.add({'a':1,'b':2})
TypeError: unhashable type: 'dict'
s2={(1,2,3)}
ok<br>
增
s1.add(100)
s1.add([10, 20, 30])
报错 TypeError: unhashable type: 'list'
s2 = {[1,2,3]}
报错 TypeError: unhashable type: 'list' 猜测底层是hash索引<br>
s2.add({'a':1,'b':2})
TypeError: unhashable type: 'dict'
删
s1.remove(10)
不存在的元素 报错 KeyError: 10
s1.discard(10)
:删除指定数据,如果数据不存在不报错
s1.pop()
随机删除某个数据,并返回这个数据
改
s1.update([10, 20, 30, 40, 50])
update必须是集合<br>
s1.update(100)
# 报错 TypeError: 'int' object is not iterable
查
print(10 in s1)
print(10 not in s1)
遍历
for x in s1:<br> print(x)
公共操作
操作符:+<br>
操作符:*<br>
操作符:in<br>
len<br>
del<br>
max和min<br>
ranage<br>
enumerate
enumerate 返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是原迭代对象的数据
数据类型转换
list1 = [10, 20, 30, 20, 40, 50]<br>s1 = {100, 300, 200, 500}<br>t1 = ('a', 'b', 'c', 'd', 'e')<br><br># tuple(): 转换成元组<br>print(tuple(list1))<br>print(tuple(s1))<br><br># list():转换成列表<br>print(list(s1))<br>print(list(t1))<br><br># set():转换成集合<br>print(set(list1))<br>print(set(t1))<br>
推导式
函数
函数基本要素
def关键字<br>
函数形参,函数返回值
形参<br>
不定长位置参数(元组) 不定长关键字参数(字典)<br>
函数返回值:<br>
return支持返回元组<br>
函数嵌套
变量作用域
局部变量
全局变量
引用
函数加强
递归
lambda<br>
类
类基本元素
类属性
属性分类
公有属性
私有属性
创建
通过init时创建并初始化<br>
通过类外边创建并初始化<br>
访问
通过实例化类访问
不支持类访问
self<br>
super<br>
类方法
创建
访问
静态方法
创建
访问
魔法方法<br>
__init(selt,param1,params2)<br>
类被实例化后调用
__str(self)<br>
打印类时被调用
__del(self)<br>
类对象被销毁时调用
继承
单继承
子类会继承父类的公有属性和公有方法
访问
通过子类对象.xxx或者子类.xxx()方法访问<br>
子类重写父类的公有属性和公有方法
访问
直接访问的子类的属性和方法
关键字
Prentice.__mro__
多继承
异常
异常基本方式
try:<br>catch (Exception):<br>else:<br>finaly:<br>
else:不抛出异常,则执行else(try里面有return语句,则不执行else)<br>
finaly:一定执行,即使有return<br>
主动抛出异常<br>
raise
多异常
catch (xxxException,yyyException):<br>
异常的传递
自定义异常
文件操作
操作类型
r<br>
读模式
read(1024)<br>
readline()<br>
w<br>
写模式
write("abc".getByt(""utf-8))<br>
a<br>
追加模式
b<br>
二进制方式
close<br>
文件操作完,要关闭,否则fd句柄不会回收,操作系统文件句柄fds<br>打开最多1024个
进程、线程以及协程
闭包&装饰器<br>
装饰器及其原理
闭包
如何写一个闭包
① 定义一个方法func1(arg1)<br>② 方法fun1里面要嵌套函数func2,并且func2要使用func1里面的形参<br><font color="#e74f4c"><b>③ func1的返回值需要是func2的地址</b></font><br>
eg: <br>
闭包进阶
修饰方法参数传递与返回结果
Python高阶语法
@property
with语句<br>
上下文管理器
yield关键字
深拷贝和浅拷贝
正则表达式
算法
链表
栈
队列
双端队列
排序
冒泡排序
选择排序
插入排序
快速排序
二分查找
完全二叉树
数据库操作
0 条评论
下一页