列表2026-03-05
可迭代对象:字符串、列表(可以迭代对象,可以for循环遍历取值)
列表形式 [元素1,元素2,元素3]----元素的类型可以不同
所有元素放在[]内,元素与元素之间用,隔开
元素之间的数据类型可以各不相同
li=[1,2,'a',4]
print(li,type(li))#[1, 2, 'a', 4] <class 'list'>
#列表也可以进行切片操作
print(li[0:3])#[1, 2, 'a']
#遍历取值
for i in li :
print(i)
列表的相关操作:
(1)添加元素:append()、extend()、insert()
(2)修改元素:通过下表修改(像正常的C语言数字一样修改)
(3)查找元素:in;not in;index;count
(4)删除元素:del;pop;remove
(5)排序:sort;reverse
#列表增加元素
li=[1,2,'a',4]
li.append("hello")#相当于就在原来的基础之上加了一个hello,只是修改了列表的内容,并没有新增空间,默认为none
print(li)#[1,2,'a',4,'hello'] 整体增加 增加什么内容就获取到什么内容
li.extend('hi')#将整体插入内容 分散为个体
print(li)#[1,2,'a',4,'h','i']
li.insert(3,"one")#指定位置进行插入 必须的有数字即指定的位置 不然会报错 3即就是第三位是插入的内容
print(li)#[1,2,'a','one',4,'hello','h','i']
用户输入昵称,昵称重复则不能使用;定义一个列表,保存已经存在的昵称
li=[1,2,'h',3]
while True :
name=input("请输入用户名称")
if name in li:
print("输入的名字是存在的")
else :
li.append(name)#注意这里是.不是用等于把内容写进去
print(f"所有名字内容有:{li}")#注意输出的时候有字符串+列表的形式
index:返回指定数据所在位置的下标,如果查找的数据不存在就会报错
li=[1,2,'h',3]
li_Index=li.index('h')
print(li_Index)
count:统计指定数据在当前列表出现的次数
li=[1,2,'h',1]
li_Index=li.count(1)
print(li_Index)#2
li_Index=li.count('1')
print(li_Index)#0
删除元素
del:根据下标进行删除(注意中间使用的是空格)
li=[1,2,'h',1]
del li[3] #注意中间使用的是空格 指定输入下标的数字 [1, 2, 'h']
print(li)
# del li
# print(li)#这里是删除整个列表,运行后的内容是NameError: name 'li' is not defined
#如果要清除内容
# li=li.clear()#清除所有的内容
# print(li)#None
#pop:删除指定下标的数据,Python3版本默认删除最后一个元素
li.pop()
print(li)#[1, 2, 'h']
li.pop(1)#只能指定要删除的下标,不能指定要删除的内容
print(li)#[1]
remove:根据元素的值进行删除
li=[1,2,'h',1]
li.remove('h')
print(li)#[1, 2, 1]
li.remove(1)
print(li)#[2, 1]当有重复内容出现,remove会删除第一次出现的内容
排序:
sort()将列表按特定顺序重新排列,默认从小到大
reserve()倒序输出
li=[1,2,3,1]
li.sort()#按照从小到大的顺序排序
print(li)#[1, 1, 2, 3]
li.reverse()#把列表倒序输出
print(li)#[3, 2, 1, 1]
列表推导式
基本写法:
[表达式 for 变量 in 列表]
[表达式 for 变量 in 列表 if 条件]
注意:有方框存在的
li=[]
[li.append(i) for i in range(1,6)]
print(li)#[1, 2, 3, 4, 5]
[li.append(i) for i in range(1,6) if i%2 == 1]
print(li)#[1, 3, 5]
列表嵌套:一个列表里面又有一个列表
#列表嵌套(一个列表里面又有一个列表)
li = [1,2,3,[4,5,6]]
print(li[3][1])#5
print(li[3])#[4,5,6]
1.元组 tuple 字典 20260310
元组
基本格式:元组名=(元素1,元素2,元素3...)
所有元素包含在小括号内,元素与元素之间用,隔开,不同元素也可以是不同的数据类型
# tua = (1,2,3,'a','b’)
# print(type(tua)) #<class 'tuple'>
tua = 0
#定义空元组
int (type (tua))
print('a')#<class 'str'>
tub=(a’,) #只有一个元素的时候,末尾必须加上,否则返回唯一的值的数据类型
print (type (tub))##<class 'tuple'>
元组与列表的区别
元组只有一个元素末尾必须加,列表不需要
li=[1]
print(type(li))
元组只支持查询操作,不支持增删改操作
tua(1,2,3,1)
#count(),index(),len()更列表的用法相同
print(tua,index(2))
print(tua.count(1))
print(len(tua))
print(tua[1:])
name='huahua'
age=12#元组的内容必须得先定义
information=(name,age)#
name='hh'
print("%s是%d"%information)#huahua是12
字典
dic={'name':'sixStar','age':18}
注意:键值对形式保存,键具有唯一性,但值可以重复
#字典中的键具备唯一性,但是值是可以重复
dic={'name':'bingbing','age':18,'name':'huahua'}
print(type(dic))#<class 'dict'>
print(dic)#{'name': 'huahua', 'age': 18} 如果有重复内容,就会覆盖原来的信息
字典常见操作
查看元素
dic={'name':'bingbing','age':18,'name':'huahua'}
print(dic['age'])
如果查找的键名没有定义返回的是None()
列表通过下表修改,字典通过键名修改
字典还有新增功能
dic={'name':'bingbing','age':18,'name':'huahua'}
dic['age']=20#修改
print(dic)#{'name': 'huahua', 'age': 20}
dic['hight']=123#新增
print(dic)#{'name': 'huahua', 'age': 20, 'hight': 123}
删除
dic={'name':'bingbing','age':18,'name':'huahua'}
dic['age']=20#修改
print(dic)#{'name': 'huahua', 'age': 20}
dic['hight']=123
print(dic)
#del dic
#print(dic)#删除这个列表的所有信息,会报错
# dic.clear()
# print(dic)#{} 删除了所有内容
#pop()删除指定键值对,键不存在就会报错
dic.pop('name')#使用pop()删除字典中没有定义的键名,会报错
#popitem()随机删除一个键值对,3.7之后的版本默认删除最后各一个键值对
print(dic)#{'age': 20, 'hight': 123}
20260501
函数
1.def 函数名(参数列表):
函数体
return 返回值
注意:函数必须先定义调用执行;没有返回值可以省略
def circle_area(r):
area=3.14*r*r
return area
c_area=circle_area(10)
print(c_area)
如果返回多个值,中间用逗号间隔,其中返回的类型是元组类型;也可以直接解包 area,len=函数名()
2.函数的说明文档是写在函数开头,用三引号包裹的字符串,用于解释函数的功能、参数、返回值等信息,方便调用者清楚函数的具体作用以及细节;类似于注释(不同点是,调用函数的时候,鼠标指针放上去会有解释说明,好的文档,能让代码更容易理解、使用和维护)
def circle_area(r):
"""
area=3.14*r*r
return area
"""
c_area=circle_area(10)
print(c_area)
3.函数作用域
global关键字,明确的告诉Python解释器,在函数中要使用全局变量,使函数内部修改全局变量的值
注意:尽量避免在函数中使用全局变量,因为会使代码难以维护和调试;考虑使用函数参数和返回值来传递数据,而不是依赖全局变量;global主要用在程序的状态、配置和计数器等场景中
4.传参方式
调用函数时以函数定义时形参名称作为关键字,以“键=值”的形式来传递参数(不要求顺序)

5.默认参数
默认参数也成为缺省参数,用于在定义函数时,为参数提供默认值,调用函数时,可以不传递有默认值的参数;
def 函数名(变量名1,变量名2,变量名3=“小花”)
调用时: 函数名(变量名1,变量名2)
如果函数调用时,需要修改设置的默认值,可以进行重新赋值,从而替换变量。如:函数名(变量1=2,变量2=4,变量3=“小草”)
注:在函数调用的时候,默认形参后面跟随非默认形参
6.函数-不定长参数(位置参数 args --> 元组)
def 函数名(args): #意思是,函数在进行调用传参时,传参个数是可以任意多个的,以元组的形式
7.不定长参数--关键字传递(kwargs)
def 函数名(args,kwargs)
调用形式:函数名(100,200,300,round=2,count=0)#前面三个参数是元组args 接收位置传递的不定参数,后面两个是字典**kwargs 接收关键字传递的不定参数
round()--计算的平均值保留几位小数
20260517
面向对象基础(有一个考试,所以提前学一下)
1.面向过程编程:把一个需求分解成一些列要执行得步骤,然后按照步骤依次执行这些任务(流程、步骤)
1)适用场景:面向过程编程非常直接,适合简单,线性得任务
2.面向对象(谁帮我做这件事儿)
1)万物皆对象
2)把一个人/物的特征和功能打包到一起,是面向对象编程的基本单元(特征---属性;功能---方法)
3.类与对象
1)类:具有相同属性(特征)和方法(功能/行为)的模板
2)对象:对象是类的实例,是基于类创建出来的(实例对象)
提示:对象是由类创建出来的,创建对象的过程,也称为对象的实例化。一个类可以创建无数个对象
3)类的定义
动态的为对象添加属性

_ dict _是python中用户自定义类实例的一个特殊属性,用于以字典形式存储对象的属性(这样能当作列表形式把整体输出来)

_ init 方法是初始化的方法,会在对象创建时自动调用,可以在该方法中为对象设置对应的属性;
self:是第一个参数,表示当前所创建出来的实例对象

魔法方法:Python中提供的以双下划线开头和结尾的特殊方法,用于定义类的特殊行为,比如: _ _ init _
_ init _ _ 初始化方法
_ str 字符串表示的方法
_ _ lt , le , gt , _ ge _支持比较两个对象的大小(小于(less than),小于等于(less than or equal),大于(greater than),大于等于(greater than or equal))

4)属性分为
实例属性:实例属性属于每个具体对象的属性,每个对象都是独立的。(各个对象特有的数据 )
类属性:类属性是属于类本身的属性,所有实例共享的。(所有对象共享的数据或配置)

如果实例属性与类属性都定义了同一个变量,实例属性就会覆盖