Day10. 总结函数基础
一、字符串常用方法
1.zfill --填充
字符串.zfill(宽度)不够用0来填充
num = 23
result = str(num) . zfill(4)
print(result)
# 方法二
result = f'{num:0>4}'
print(result)
2.split – 分割
字符串 . split (字符串2) — 将字符串1中所有的字符串2作为切割点,对字符串1进行切割
str1 = 'abcd123abhkl'
result = str1.split('b')
print(result)
3.replace --替换
字符串 . replace(字符串2,字符串3,替换次数)
str1 = 'how are you? i am fine , thank you!'
result = str1.replace('you', 'me')
print(result)
4. maketrans – 替换
str1 = 'abcdefghijkl'
intab = "aeiou"
outtab = "12345"
trantab = str1.maketrans(intab, outtab)
x = str1.translate(trantab)
print(x)
5.join
字符串 . join(序列) ----- 将序列中的所有元素加入到字符串中,产生一个新的字符串
result = '+'.join(['1', '2', '3', '4'])
print(result)
6.eval()函数 – 将内容是指定格式内容的字符串转换成对应类型的数据。
str1 = '[10, 20, 30, 40]'
result = eval(str1)
print(result, type(result))
7.zip(序列) 返回一个序列 ,将两个序列合并成一个序列,将两个序列的元素一一对应返回为元组
result = zip('abcd', '1234')
print(list(result))
keys = ['name', 'age', 'sex']
values = ['小明', '18', '男']
result =dict(zip(keys, values))
print(result)
- 例题:将字典的键和值互换
dict1 = {'a': 'b', 'c': 'd', 'sex': '18'}
x = dict1.keys()
print(x)
result = {}
for x in dict1:
result[dict1[x]] = x
print(result)
# 方法二
result = [(dict1[x], x) for x in dict1]
print(dict(result))
# 方法三
result = {dict1[x]: x for x in dict1} # 列表推导式
print(result)
# 方法四
result = dict(zip(dict1.values(), dict1.keys()))
print(result)
二、创建函数
1. 什么是函数
函数就是对实现某一特定功能代码的封装(相当于具有某种功能的机器)
2. 函数的分类
系统函数:由系统创建好的函数 ,可以直接使用。例如:print() input() type()
自定义函数:由程序员自己创建的函数
3.定义函数(创建函数)
- 语法:
def 函数名(形参列表):
函数说明文档
函数体
- 说明:
def, (), 冒号 - 固定写法
函数名 – 自己定义 (标识符不能是关键字;见名知义)
形参列表 – 以变量名1,变量名2,变量名3,…的形式存在。形参可以没有,可以有多个。
形参的作用是将函数外部的数据传递到函数里面。(传递数据的通道)
说明文档 – 本质是文档注释
函数体 – 实现函数功能的代码 和 def 保持一个缩进的一条或者多条语句。
- 步骤
第一步:确定函数的功能
第二步:根据功能给函数起名字
第三步:确定形参。看实现函数的功能需不需要额外的数据
第四步:实现函数的功能
第五步:写函数说明文档
- 结论: 定义函数的时候不会执行函数体,调用函数的时候才会执行函数体
三、函数的参数
1.位置参数和关键字参数(实参的分类)
位置参数:以’数据1‘, ’数据2‘, ’数据3‘…的形式存在,传参的时候直接和形参从位置上一一对应
关键字参数:以’形参名1=数据1,形参名2=数据2’
混用:必须保证位置参数在前面,关键字参数在后面
2.参数默认值(形参)
定义函数的时候,可以通过’形参名=值’的方式给参数赋默认值
有默认值的参数在调用的时候可以不用传参 例如:def fun2(a, b, c=10 ):
注意:定义函数的时候所有的参数都可以有默认值,也可以部分参数有默认值。如果是
部分参数有默认值的话,没有默认值的参数必须放前面
3.参数类型说明
# 方法一:给参数赋默认值,默认值的类型就是对应的参数类型
def func5(names=[]) 形参为列表
# 方法二:在形参后面加冒号和类型名,,,,方法一和二部能同时使用
def func5(names:list, obj:str,count=0)
4. 不定长参数
# 第一种:在参数前加*
# 这个带*的参数会变成一个元组,会将对应的实参作为元组中的元素
def sum2(*num):
print(nums)
# 注意:在调用的时候只能使用位置参数
- 例题:写一个函数求多个数的和
def sum2(*nums):
s = 0
for x in nums:
s += x
print(s)
如果定义函数的时候,定长的参数在不定长参数的后面,定长参数必须使用关键字参数
def sum4(*score, name):
print(name, score)
sum4(19, 78, 34, name='小花')
# 第二种:在参数前面加**
# 这个带**的参数会变成一个字典,代用的时必须使用关键字参数传参,每个关键字参数都会
# 成为字典中的键值对
def func6(**nums):
print(nums)
func6() # {} # 输出为字典
func6(x=10) #{'x':10, 'y':20, 'z'=30}
func6(x=10, y=20, z=30)