一、 字符串方法
1.zfill
- 字符串.zfill(宽度)
num = '123'
result = num.zfill(4)
print(result) # 0123
2.split - 切割
- 字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点,对字符串进行切割,返回列表
str1 = 'abcd123ablna'
pirnt(str1.split('b')) # ['a', 'cd123a', 'lna']
print(str1.split('a')) # ['', 'bcd123', 'bln', '']
3.replace - 替换
- 字符串1.replace(字符串2,字符串3, n) - 替换
str1 = 'aaaabbbb'
print(str1.replace('b', 'a', 3)) # aaaaaaab
4.
-
maketrans - 创建字符映射的转换表,对于接受两个参数的最简单的调方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转的目标
-
translate - 根据参数table给出的表(包含 256 个字符)转换字串的字符
str1 = "aeiou"
str2 = "12345"
str3 = str.maketrans(str1, str2)
str4 = 'adsfewcu'
str5 = str4.translate(str3)
print(str5) # 1dsf2wc5
5.join
- 字符串.join(序列) - 将序列中所有元素用字符串连接产生一个新的字符串,序列中的元素必须是字符串
str1 = 'abc'
str2 = '1'
str3 = str2.join(str1)
print(str3) # a1b1c
6.eval() - 函数
- 将内容是指定格式内容的字符串转换成对应类型的数据
str1 = '[10, 20, 30]'
result = eval(str1)
print(result) # [10, 20, 30]
7.zip(序列1,序列2) - 将两个序列合并成一个序列,新序列中的元素是相同位置上的元素对应的元组,返回一个新序列
keys = ['name', 'age', 'sex']
values = ['小明', 18, '男']
result = dict(zip(keys, values))
print(result)
二、创建函数
1.什么是函数
- 函数就是对实现某一功能的代码进行封装(就相当于具有某种功能的机器)
2.函数的分类(由谁来创建)
- 系统函数:由系统(python)创建好的函数就是系统函数,程序员需要某种功能时直接使用的函数,例如:print、input、type。。。
- 自定义函数:由程序员自己创建的函数,就是自定义函数。
3.定义函数(创建函数) - 造机器
1)语法:
def 函数名(形参列表):
函数说明文档
函数体
2)说明:
def、()、冒号 - 固定写法
函数名 - 程序员自己定义;标识符,不是关键字;见名知义(看到函数名大概知道函数功能);不要使用系统已有命名
- 形参列表 - 以‘变量名1,变量名2。。。’形式存在;形参可以一个都没有,也可以有多个;形参的作用是将函数外部的东西传递到函数里面
- 函数说明文档 - 本质就是文档注释(’’’’’’,"""""")
- 函数体 - 和def保持一个缩进的一条或者多条语句。函数体就是实现函数功能的代码
3)步骤
- 第一步:确定函数功能
- 第二步:根据功能确定函数名
- 第三步:确定形参:看实现函数功能需不需要额外的数据,需要几个
- 第四步:实现函数的功能
- 第五步:写函数说明文档
# 练习:定义一个函数可以统计一个字符串中另外一个字符串出现的次数
def str_count(str1, str2):
"""
第二个字符串在第一个字符串中出现的次数
:param str1: 第一个字符串
:param str2: 第二个字符串
:return:
"""
l1 = len(str1)
l2 = len(str2)
index = 0
count = 0
while True:
if str1[index:index+l2] == str2:
count += 1
index += l2
else:
index += 1
if index >= l1:
break
print(count)
4)重要结论:定义函数不会执行函数体,调用函数时会使用函数体
5)调用函数(使用机器)
-
语法:
函数名(实参列表)
-
说明
函数名 - 必须是已经定义好的函数的函数名
实参列表 - 实参就是通过形参传递到函数内部的具体数据
-
函数调用过程:
第一步:回到函数定义的位置
第二步:传参(用实参给形参赋值)
第三步:执行函数体
第四步:确定函数返回值
第五步:回到函数调用的位置
三、函数的参数
1.位置参数和关系参数(实参的分类)
1)位置参数:以‘数据1,数据2,数据3…’的形式存在,传参的时候直接和形参从位置上一一对应
2)关键字参数:以‘形参名1=数据1,形参名2=数据2…’
3)位置参数和关键字参数可以混用,不过关键字参数要在后边
def func1(a, b, c):
print(f'a:{a},b:{b},c:{c}')
func1(b=20, a=10, c=30) # a:10,b:20,c:30
func1(10, c=30, b=20) # a:10,b:20,c:30
2.参数默认值(形参)
- 定义函数的时候可以通过‘形参名=值’的方式给参数赋默认值。
- 有默认值的参数在调用的时候可以不用传参
- 注意:定义函数的时候所有的参数都可以有默认值,也可以部分参数有默认值,没有默认值的参数必须放前面
def func1(a, b, c=10):
print(f'a:{a},b:{b},c:{c}')
func1(10, 20) # a:10,b:20,c:10
3.参数类型说明
- 方法一:给参数赋默认值,默认值的类型就是对应的参数类型
def func1(names=[]):
names.append(100)
print(names)
func1([1, 2])
- 方法二:以‘形参名:类型名’的方式说明类型
- 注意:方法一和方法二不能同时使用
def func1(names:list,obj:str,count=0):
names.append(10)
4.不定长参数
-
第一种:参数前加*
这个带*的参数会变成一个元组,会将对应的实参作为元组中的元素
定长和不定长可以混用,如果定长在后面,调用的时候定长的参数在传参的时候必须使用关键字参数
-
注意:在调用的时候只能使用位置参数传参
def sum2(*nums):
print(nums)
sum2() # ()
sum2(1, 2) # (1, 2)
-
第二种:在参数前加**
这个带**的参数会变成一个字典,代用的时候使用关键字参数传参,每个关键字参数会作为字典中的一个键值对。
def func1(**nums):
print(nums)
func1(x=10, y=20) # {'x': 10, 'y': 20}
2104

被折叠的 条评论
为什么被折叠?



