DAY09、函数

2022-11-05,

一、函数的定义:跟变量名的定义大同小异

1、声明函数的关键词:def

2、函数(变量)名:使用函数的依据

3、参数列表:()   参数个数可以为0到n个,但()一定不能丢,完成功能的必要条件

4、函数体:实现函数功能的具体代码

5、函数的返回值:return,功能完成的返回信息

例:def fn(moeny):

print('付了%s钱'%money)

print('函数的一行代码')

return'冰红茶'

print(fn,id(fn))                     #fn直接打印,只能看到函数存放代码的地址

二、使用函数:函数名()

fn(10)

函数的返回值也称之为函数值,就是函数执行之后得到的结果

可以用变量接受(msg = fn(10))、可以直接打印(print(fn(10)))、可以直接使用

函数执行的本质:执行函数体,得到函数返回值

三、从函数体进行分类:

重点:先定义后调用

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

例:   def  computed():

pass

2、非空函数:用函数体

例: def add_num(n1,n2):

return n1 + n2

res = add_num(10,20)

print(res)                        #  30

四、从参数列表进行分类:

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

例:def print_msg():

print('welcome')

print_msg()

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

例:  def print_school_msg(p1,p2):

print('welcome %s and %s'%(p1,p2))

p1 = input('输入名字:')

p2 = input('输入名字')

print_school_msg(p1,p2)

五、从返回值进行分类:

空返回:

1、没有return的函数:

例: def fn1():

print('fn1 run!!!')

res = fn1()

print('没有return的返回值:%s',%res)      #None

2、空return

例:   def fn2():

print('fn2  run!!!')

return

ren = fn2()

print('空return的返回值,%s'%res)          #None

注:没有return函数和空return函数的区别:

空return:可以根据具体情况主动退出函数(像break一样结束循环)

值返回:

1、返回一个值:

例: def add_num(n1,n2):

return n1+ n2

print(add_num(10+15))          #25

         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(10,20)
print(a,b,c,d)

2、返回多个值:本质就是返回装有多个值得元组

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(10,20)
print(res) #得到的是装有所有结果的元组

六、函数的嵌套使用:在一个函数体中调用另一个函数

注:在解释过程中,不执行函数体,在函数被调用时,函数体才被执行

def max_2(n1, n2):
if n1 > n2:
return n1
return n2 #比较两个数的大小

def max_3(n1, n2, n3):
m2 = max_2(n1, n2)
return max_2(m2, n3) #比较三个数的大小

def max_4(n1, n2, n3, n4):
m2 = max_2(n1, n2)
return max_3(m2, n3, n4) #比较四个数的大小
七、应用场景:
指定文件名的文件复制:
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('被复制的文件','复制得到的文件')

八、了解:脚本文件的执行
import sys
# 存放当前文件作为脚本文件执行的参数们:['当前文件的绝对路径', 手动传入的参数们]
# 脚本文件执行:直接用python解释器运行该文件
print(sys.argv)
# D:\fullstack_s4\day09\代码\0.复习.py length = len(sys.argv)
if length > 1:
print("有指令传入")
cmd = sys.argv[1]
if cmd == '1':
print("新建文件")
# f = open('cmd.txt', 'w', encoding='utf-8')
# f.close()
with open(r'D:\fullstack_s4\day09\代码\cmd.txt', 'w', encoding='utf-8') as f:
pass
elif cmd == '2':
print("书写文件")
with open(r'D:\fullstack_s4\day09\代码\cmd.txt', 'w', encoding='utf-8') as f:
f.write("写入内容")
else:
print("指令有误")
else:
print("没有指令传入")
 

DAY09、函数的相关教程结束。

《DAY09、函数.doc》

下载本文的Word格式文档,以方便收藏与打印。