Python-函数定义

1、先定义函数

定义的语法:
def 函数名(参数1,参数2,...):
"""文档描述"""
函数体
return 值

形式一:无参函数
def func(): #func指向函数的内存地址(申请内存空间,把函数体代码存入到内存空间,然后内存地址捆绑func)
print("哈哈哈哈")

无参函数的调用
func()

定义函数发生的事情
1.申请内存空间保存函数体代码
2.将上述内存地址绑定函数名
3.定义函数不会执行函数体代码,但是会检测函数体代码语法

调用函数发生的事情
1.通过函数名找到函数的内存地址
2.然后加括号就是在触发函数体代码的执行

无参函数案例1
def bar(): #bar=函数的内存地址
print("from bar")
def foo():
bar()
print("from foo")
foo()

无参函数案例2
#只是定义函数,会检测函数体代码语法,不会执行函数体代码
def foo():
bar()#这块不会执行调用bar()函数,只是检测函数体代码语法
print("from foo1111")
def bar():
print("from bar11111")
#调用foo()函数,才会执行函数体代码,函数体内bar()才会执行调用。
foo()

无参函数案例3
def foo():
bar() #这块函数检测语法不会报错,此时bar函数未定义。
print("from foo")

-----------------------
def foo():
bar() #这块函数检测语法不会报错
print("from foo")
foo() #当调用foo()函数时会报错,提示bar函数未定义
def bar():
print("from bar")


形式二:有参函数
def func(x,y): #x=1,y=2 函数的参数就是变量名,调用函数时,传入的值就是变量值
print(x,y)
func(1,2) #1赋值给x,2赋值给y

形式三:空函数,函数体代码为pass
def func(x,y):
pass
func(1,2)


三种定义方式各用在何处
1.无参函数的应用场景
def interactive():
input_user=input("请输入用户名:").strip()
input_pass=input("请输入密码:").strip()
print("用户名:{},密码:{}".format(input_user,input_pass))


2.有惨函数的应用场景
#根据函数体内如果需要传递进来的参数,就定义有参函数
def add(x,y): #参数--》原材料
res=x+y
return res #返回值--》产品

3.空函数的应用场景
#构思函数
def pwd():
"""描述"""
pass
def cd():
"""描述"""
pass
def ls():
"""描述"""
pass




2、调用函数
1.语句的形式:只加括号调用函数
interactive()
add(1,2)

2.表达式形式
def add(x,y): #参数--》原材料
    res=x+y
return res
#返回值--》产品
#赋值表达式
res=add(2,3)
print(res)

数学表达式
res=add(2,3)*10 #res=(add(2,3)是函数的返回的结果值5*10)
print(res)

3.函数调用可以当做参数
res=add(add(1,3),5) #第二次调用add函数传入的参数值是4,5最后函数返回的结果值是9(第一次调用add函数传入的参数值是1,3函数返回的结果值是4)
print(res)
#9
 
3、函数返回值

#return:是函数结束的标志,即函数体代码一旦运行到return会立刻终止函数的运行,并且会将return后的值当做本次运行的结果返回
1.返回None:函数体内没有return
返回None:函数体内有return
def funct():
    print("11111")
while True:
print("2222")
while True:
print("33333")
while True:
print("4444")
return #return能终止while循环
print("return后代码") #即函数体代码一旦运行到return会立刻终止函数的运行,不会执行函数体return后面的代码

funct()#调用funct函数输出
11111
2222
33333
4444

def f():
return
res=f()
print(res)
#输出
None

def f1():
pass
res=f1()
print(res)

#输出
None
2.返回一个值: return 值
def f2():
return 10
res=f2()
print(res)
# 10

3.返回多个值:用逗号分隔开多个值,会被return返回成元祖
def f3():
return 10,"llj",[1,2]
res=f3()
print(res)
# (10, 'llj', [1, 2])




 
 
 
 
 
 






 
posted @ 2020-11-06 11:36  梁博客  阅读(313)  评论(0)    收藏  举报