函数的组成部分及函数参数

Posted yangyinyin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的组成部分及函数参数相关的知识,希望对你有一定的参考价值。

一、函数

1、概念

重复利用的工具

完成特定功能的代码块,函数就是存放代码块的容器

2、定义函数的语法

def   函数名(参数1 ,参数2,参数3,......)

       函数体

       return

注:函数返回值也称之为函数值,就是函数执行的结果

       可以用变量接收/可以直接打印/可以直接使用

3、函数的四大组成部分

函数名:使用函数的依据

函数体:完成功能的具体代码块

函数返回值:功能完成返回的信息

参数:实现功能需要的参数

4、使用函数

函数名()

注:先定义后使用

二、函数的分类

1、从函数体进行分类

  空函数:项目之初,知道项目有哪些功能,但还没有明确功能体,可以用pass进行函数体填充

def computed():
pass
非空函数:用函数体
def add_num(n1, n2):

return n1 + n2

print(a)
a = 10

computed()

res = add_num(10, 20)
print(res)

a = 50
b = 100
print(add_num(a, b))

2、从参数列表进行分类

无参函数:函数体运行不需要外界提供参数

def print_msg():
print("欢迎大家来到老男孩教育,奉献你的余生!!!")


print_msg()

函数体运行需要外界提供参数
def print_school_msg(p1, p2):
print("欢迎%s和%s领导莅临老男孩教育,敞开你的腰包!!!" % (p1, p2))


p1 = input("输入一号领导名:")
p2 = input("输入二号领导名:")
print_school_msg(p1, p2)

有参函数:函数体运行需要外界提供参数

def print_school_msg(p1, p2):
print("欢迎%s和%s领导莅临老男孩教育,敞开你的腰包!!!" % (p1, p2))


p1 = input("输入一号领导名:")
p2 = input("输入二号领导名:")
print_school_msg(p1, p2)

3、从返回值进行分类

没有return的函数:默认在函数最后return  None

def fn1():
print(‘fn1 run!!!‘)
res = fn1()
print(‘没有return关键字的返回值:%s‘ % res) # None

空return

def fn2():
print(‘fn2 run!!!‘)
# return
# return None

res = fn2()
print(‘空return关键字的返回值:%s‘ % res) # None
无return函数与空return函数的区别
空return:可以根据具体情况主动退出函数(像break结束循环一样)

值返回

# 一个值的返回
def add_num(n1, n2):
return n1 + n2
print(add_num(10, 15))

def computed(n1, n2):
# 返回四则运算的结果
r1 = n1 + n2
r2 = n1 - n2
r3 = n1 / n2
r4 = n1 * n2
return [r1, r2, r3, r4]

a, b, c, d = computed(50, 25)
print(a, b, c, d)


# 多个值的返回: 本质就是返回装有多个值的元组
def computed_sup(n1, n2):
# 返回四则运算的结果
r1 = n1 + n2
r2 = n1 - n2
r3 = n1 // n2
r4 = n1 ** n2
return r1, r2, r3, r4

a, b, c, d = computed_sup(50, 25)
print(a, b, c, d)

res = computed_sup(50, 25) # 得到的是装有所有结果的元组
print(res)

三、函数的嵌套调用

函数的嵌套调用:在一个函数体重调用另一个函数

# 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行
def fn1():
print(‘fn1 run‘)
fn2()

def fn2():
print(‘fn2 run‘)
fn3()

def fn3():
print(‘fn3 run‘)

# 注:在fn1中调用了fn2,所以调用fn1的逻辑应该在fn2定义之后
fn1()


# 案例:用函数实现获取两个数的最大值
def max_2(n1, n2):
if n1 > n2:
return n1
return n2

print(max_2(200, 30))

获取三个数的最大值
普通法
def max_3(n1, n2, n3):
if n1 > n2 and n1 > n3:
return n1
if n2 > n1 and n2 > n3:
return n2
return n3
嵌套
def max_3(n1, n2, n3):
m2 = max_2(n1, n2)
return max_2(m2, n3)

print(max_3(300, 30, 30))

四个数
def max_4(n1, n2, n3, n4):
m2 = max_2(n1, n2)
return max_3(m2, n3, n4)
print(max_4(10,30,20,0))

四、指定文件名的文件复制

def copy_img(target_img):
with open(‘001.jpg‘, ‘rb‘) as r, open(target_img, ‘wb‘) as w:
for line in r:
w.write(line)


copy_img(‘888.jpg‘)
copy_img(‘999.jpg‘)

def copy_file(source, target):
‘‘‘
:param source: 被复制的文件
:param target: 复制得到的文件
:return:
‘‘‘
with open(source, ‘rb‘) as r, open(target, ‘wb‘) as w:
for line in r:
w.write(line)

copy_file(‘cmd.txt‘, ‘aaa.txt‘)
copy_file(‘temp.txt‘, ‘ttt.txt‘)

以上是关于函数的组成部分及函数参数的主要内容,如果未能解决你的问题,请参考以下文章

Swift6-函数

嵌套调用less函数时参数值的变化及提取部分-遁地龙卷风

引用向量的部分片段?

逆向及Bof基础实践

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

20155307刘浩《网络对抗》逆向及Bof基础