当前位置:网站首页>学习总结week3_1函数
学习总结week3_1函数
2022-08-05 05:13:00 【非鱼丶丶】
python函数
一、函数作用
当一个功能需要反复使用的时候,将此功能编写成函数,后续需要此功能时,调用此函数即可
1.什么是函数
实现某一特定功能的代码封装
实现某一或者某类功能的代码打成一个包,以后在需要这包中的这段代码对应的功能的时候,使用该函数即可
2…函数的分类
根据这个函数是由谁创建的,我们将函数分为系统函数;自定义函数
1)系统 - 系统创建的函数(python本身创建的函数)(print / input 等)
2)自定义 - 有程序员自己创建的函数
语法:
def 函数名(形参列表):
函数说明文档
函数体
3.说明
1)def - 关键字;固定写法
2)函数名 - 自命名(两个要求,三个规范)
3)() - 固定写法
4)形参列表 - 以’变量名1, 变量名2,变量名3,…'的形式存在,根据情况变量的数据可以为0
作用:将函数外部的数据传递到函数里面
确定形参的方法:看实现函数的功能需不需要额外的数据,需要多少个
5)函数说明文档 - 多行注释
6)函数体 - 结构上,和def保持一个缩进的一条或者多条语句
逻辑上,函数体就是实现函数功能的代码
def dict_exchange(dict1):
""" (功能说明区):交换字典的键,值 :param dict1: (参数说明区) :return: (返回值说明区) """
dict2 = {
}
for x in dict1:
c = dict1[x]
dict2.setdefault(c, x)
print(dict2)
dict_exchange({
'a': 1, 'b': 2, 'c': 3, 'd': 4})
dict_exchange({
'a': 1, 'b': 2})
# 练习:定义一个函数统计字符串中数字字符的个数
def count_numbers(str1):
count = 0
for x in str1:
if x.isdigit():
count += 1
print(count)
# 练习2:定义一个函数,将两个字符串中所有的大写字母合并成一个新的字符串
def merge_upper(str1, str2):
str3 = ''
for x in str1 + str2:
if x.isupper():
str3 += x
print(str3)
# 练习3:定义一个函数,删除列表中所有的空值
# (包括None,和其他空值(比如空字符串、空列表、空元组等))
def delete_null(list1):
for x in list1[:]:
if not x and x != 0:
list1.remove(x)
print(list1)
二、调用函数
1.语法:函数名(实参列表)
说明:
1.函数名 - 需要哪个函数对应的功能,就调用那个,想要调用哪个,就写那个函数名
函数名必须是已经定义过函数的函数名
2.() - 固定写法
3.实参列表 - 以’数据1, 数据2, 数据3’的形式存在,每一个数据就是一个实参
实参对应的数据可以是任何有结果的表达式 / 实参是用来给形参赋值的,在提供实参时要和形参保持一一对应
重要结论:定义函数不会执行函数体,调用才会执行
2.函数调用过程
每次在调用函数时,执行步骤是:
1.回到函数定义的位置 def在哪行,先回到那行
2.传参(用实参给形参赋值,要一一对应,每个形参都要有值)
3.执行函数体
4.确定函数返回值
5.回到函数调用的位置,接着往后执行
3.位置参数和关键字参数
根据实参的提供方式将实参分为位置参数和关键字参数两种
1.位置参数:以’实参1, 实参2, 实参3,…'的形式存在,让实参和形参从位置上一一对应
2.关键字参数:以’形参1 = 实参1, 形参2 = 实参2, …‘的形式存在,通过’='将两者对应,顺序不影响
注意:两者可以一起用,但是必须保证位置参数在关键字参数的前面
4.参数默认值
定义函数的时候可以通过’形参 = 数据’的方式,给形参赋默认值:
若形参有默认值,在调用函数时,有默认值的参数可以不用传参
在调用时,若是输入位置参数,按顺序替换
注意:在定义函数的时候,如果一个函数有的参数有默认值,有的没有,没有默认值的形参必须在有默认值的形参的前面
def func1(x=10, y=20, z=30):
print(f'x:{
x}, y:{
y}, z:{
z}')
func1(100)
func1(z=300)
func1(100, 200)
def func2(x, y, z=10):
print(x, y, z)
func2(10, 10)
5.参数类型说明
对于无默认值参数的类型说明,直接在形参后面加: 类型名
有默认值的参数,默认值数据对应的类型就是这个形参的类型
返回值对应的类型说明 def func3(x: str) -> str:
def func3(x: str):
print(x.count('0'))
6.*对应的不定长参数
1)定义函数的时候,如果在某一个形参前面加*,那么这个形参就会变成一个不定长参数,可以接受多个实参
带 * 的不定长参数的本质是一个元组,他接受到的所有的实参是这个元组的元素
def sum_n(*num):
nums = 0
for x in num:
nums += x
print(nums)
sum_n(11, 22, 33)
sum_n(11)
2)定义函数的时候单独使用 * :调用函数时,强迫*后面的实参必须要用关键字参数传参
def func4(x, *, y, z):
print(x, y, z)
func4(10, y=10, z=10)
边栏推荐
猜你喜欢
随机推荐
Redis - 13、开发规范
第四讲 back propagation 反向传播
Flutter real machine running and simulator running
Wise Force Deleter强制删除工具
2022 Hangzhou Electric Multi-School 1st Session 01
human weakness
类的底层机制
2022牛客多校第四场C.Easy Counting Problem(EGF+NTT)
多线程查询结果,添加List集合
phone call function
DOM及其应用
u-boot debugging and positioning means
LAB Semaphore Implementation Details
MySQL Foundation (1) - Basic Cognition and Operation
结构光三维重建(一)条纹结构光三维重建
MySQL中控制导出文件后变为了\N有什么解决方案吗?
coppercam入门手册[6]
小白一枚各位大牛轻虐虐
【读书】长期更新
CAP+BASE