python字符串
字符串
定义
string = str()
切片操作
string[start:end:gap]//[开始:结束:步长]
# 常用切片操作
反转 string[::-1]
增加
# append() #末尾增加字符串
# insert(pos,string) #指定位置插入字符串
删除
# del() #删除
# pop(pos) #不写,默认是尾删
查找
find(char) # 查找,返回下标,成功返回pos,失败返回-1
rfind(char) # 反向查找
# --------------
index(char) # 成功返回pos,失败报错
rindex()
替换
replace()
切分字符串
split('标记位',count) # 默认全切,返回一个列表
列表
列表的定义
my_list = []
my_list = list()
列表的遍历
my_list = ['a','b','c']
for i in my_list:
print(i)
j = 0
while j < len(my_list)
print(my_list[j])
添加数据
插入是在原列表上处理,不会返回新的列表
append()
尾部追加字符
insert(下标,数据)
列表.extend(可迭代对象)
会将迭代对象逐个添加到原列表末尾
查询操作
index()
根据数据值查找元素的下标,失败报错
count()
统计出现的次数
in / not in
判断是否存在,返回类型bool
删除
- 根据元素value
- 根据下标
remove()
value 直接在原列表中操作,失败报错
pop()
下标,默认是最后一个元素,失败报错
del()
下标操作,失报错
排序
前提:列表中的 数据类型是一致的
list.sort(reverse=flase)
原列表中操作,升序,True降序
sorted(list)
返回新的列表,可指定排序方法
逆置
list[::-1]
返回一个新的列表
list.reverse()
原列表中逆置
列表的嵌套
类似于C++中的vector<vector>
元组
类似于列表
列表中的数据可以修改,元组中的数据不可被修改
创建元组
t = ()
t = truple()
# 创建只含有一个元素的元组
t = (3,)# 需要加,
元组支持下标和切片操作
查询
index() # 和列表一样
count()
字典
使用{}定义,是键值对(key-value)
key:支持字符串 和 数字类型
定义空字典
d = {}
d = dict()
键访问值
t[key] # 失败报错
t.get(key) # 失败返回None
# 补充
get(key,数据值) # 失败返回写的数据值
len()也可以使用,求size
添加修改
# 使用key进行添加修
字典[key] = value # key存在就是修改,不存在就是添加
# 注意 int 1 和 float 1.0 是一个key值
删除
# 根据数值删除
del dict[key]
dict.pop(key) # 返回值是key对应的value
dict.clear() # 清空dict
del dict #删除字典变量,这个字典就失效了
遍历
# for循环 遍历的是key
for key in dict:
print(key,dict[key])
# dict.keys() 获取所有的key 是dict_keys类型
# 特点:可以是哟个list类型转化
# 可以for循环遍历
# dict.values() # 获取values类型
# dict.items() #获取键值对,是元组类型
可配合拆分进行处理
enumrate
# 处理列表
for i in enumrate(list):
print(j)
# 将可迭代元素中元素的下标和值组成元组
公共方法
- 运算符 + * in not in
- 内置函数 len() max() min() del() 字典比较的是key
函数
定义函数
def 函数名():
#...
函数传参
def func(a,b,c):
print()
- 位置传参
# 按照位置顺序将是按传给形参
func(1,2,3)
- 关键字传参
# 指定实参给哪个形参
func(a=10,b=20,c=30)
- 混合使用
# 先写位置传参再写关键字传参
fuc(10,b=20,c=30)
缺省参数
在函数定义的时候,给形参一个默认值,这个形参就是缺省参数。
注意点:缺省参数要写在普通函数后面
特点:在函数掉用的时候,如果缺省参数传递实参值,则使用是实参,否则就是用缺省参数
一个备胎
def fuc(a,b=20):
print()
不定长参数
print()函数就是个电箱的不定长参数函数
# 在形参的前面加上一个* 该形参不定长元组形参,可以接受所有的位置实参,类型时元组
# 在形参前面加上一个** 该形参为不定长字典形参,可以接受所有关键字实参,类型为字典
def fuc(*args,**kwargs):
print(args)
print(kwargs)
func(1,2,3,4,5)#元组
func(a=1,b=2,c=3) # 字典
# def(普通的,不定长元组形参,缺省形参,不定长字典形参)
拆包
组包:将多个数据值,组成元组,给到一个变量。
a = 1,2,3
print(a)
拆包:将容器的数据产分到多个变量,需要注意:数据的个数和变量的个数要保持一致。
c,s,d = a
f,*args = a
引用
- 使用id()查看变量的引用
- python是引用传参
- 引用相当于起别名
- 赋值运算可以改变变量的引用
可变与不可变参数
类型的可变与不可变:在不改变变量引用的前提下,能否改变变量中的数据
能改变是可变类型,不能改变是不可变类型
- 可变类型:list
- 不可变类型: int float bool str
python中的雷村优化,对于不可变类型会直接引用
引用作为函数的参数
- 函数传参传递的是引用
- 全局变量,修改的时候,要加global
- += 对于列表来说,类似于extend,不会改变变量的引用地址
递归函数
匿名函数
使用lamba表达式定义的函数称为匿名函数
- 匿名函数不能使用if for 只能编写单行的表达式
- 匿名函数返回值结果不使用return
- 匿名函数可以不返回结果
lambda : # 函数语句
# 使用
(lambda: 函数语句)()
# 示例
lambda a,b: a+b
使用
类似于C++的sort()写法
文件的操作
作用:永久的保存数据
存储格式是二进制
- 打开文件
open(file,mode='r',encoding=None)
# file 文件ming
# 文件打开方式 r w a
# encoding 编码方式 win默认是gbk
# 返回值,文件对象
- 读写文件
对象.read()
对象.write()
对象.append()
- 关闭文件
文件.close()
文件目录操作
在os模块中
- 文件重命名
os.rename(源文件名,新文件路径名)
- 删除文件
os.remove(文件路径名)
- 创建文件夹
os.mkdir(文件路径)
- 获取当前目录
os.getcwd()
- 改变目录信息
os.chdir(目录名)
- 获取目录文件列表
os.listdir() # 返回值是列表
- 删除文件夹
os.rmdir(文件名)