python中函数的详细说明def:

1、定义调用

1.函数的代码块是以def关键字开头,后面跟函数名和括号。

2.函数可有入参,函数的入参必须放在括号的内部。

3.return返回返回值,如果没有return,默认返回None。return是结束语句。

4.函数是以:起始,必须缩进

def hello(): 
    print("hello python!") 
#调用函数
hello()

2、函数的参数传递

2.1【实参和形参】

形参:就是函数定义时小括号里的变量

实参:函数调用的时候,小括号里的表达式

函数可以没有形参和实参

def add_shuzi(x,y): 
    print("结果输出:{}".format(x+y)) 
add_shuzi(1,1)

2.2【位置参数】

位置参数,要求实参顺序必须和形参顺序完全一致,由形参顺序决定实参顺序,个数也必须一致

def add_shuzi(name,gae,home):                 
    print("woshishui{},jinnian{}sui,wojiazai{}".format(name,gae,home)) add_shuzi("lili",18,"shanghai")

2.3【关键字参数】

关键字参数,函数调用时,实参可以是键值对,键就是形参名字,这样的调用,实参不必关心形参的顺序。关键字参数必须放在后面。

def add_shuzi(name,gae,home):     
    print("woshishui{},jinnian{}sui,wojiazai{}".format(name,gae,home)) 

add_shuzi(name="lili",gae=18,home="shanghai")

2.4【默认值参数】

默认值,如果形参在定义的时候给定一个值,那么函数在调用时就可以不传实参,可以简化调用

默认值参数必须放到最右边

如果传了实参,那么实参优先,不会使用默认值

默认值只计算一次

默认值必须是不可变对象

def add_shuzi(name,gae,home="beijing"): 
    print("woshishui{},jinnian{}sui,wojiazai{}".format(name,gae,home)) 

add_shuzi(name="lili",gae=18,home="shanghai")

2.5【可变参数】 场景:有的时候我们不确定需要传入函数的参数的数量,只要传入就接收并处理,这个时候需用到不定长参数,不定长参数有如下两种形式:

使用*接收任意数量的位置参数

注意:*的不定长参数被当做元组处理

def demo1(my,*name): 
    print("大家好,我是{},下面是我的朋友".format(my)) 
        for i in name: 
print(i) 

demo1('小明','张三','李四','王五')

使用**接收任意数量的关键字参数

注意:**的不定长参数被当做字典处理

def demo2(my,**name): 
    print("大家好,我是{},下面是我的朋友".format(my)) 
    for v in name.values(): 
    print(v) 

demo2('小明',f1 = '张三',f2='李四')

3、函数的返回

【return语句的作用]

return的作用一个是终止函数的执行,所有执行了return后,其后的语句不会被执行

如果没有return语句,则默认返回的是None

return可以返回一个值,可以返回多个值,也可以返回一个元组,也可以返回一个字典,这一点和函数入参类似

def add_num(a,b): 
    c=a+b 
    return c

res=add_num(1,8) 
print(res)
def add_num(a,b):
    c=a+b
    c1=c+3
    c2=c1+5
    return c,c1,c2     #return之后的代码块不会执行
    print("天气好好")
res1,res2,res3=add_num(1,8)
print(res1)
print(res2)
print(res3)

4、lambda匿名函数

lambda 只是一个表达式,函数体比 def 简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

函数名 = lambda [arg1 [,arg2,.....argn]]:expression

add_num = lambda a,b:a+b res1 = add_num(1,2)

print(res1)

5、函数的作用域

5.1、函数的局部变量:在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量。

def demo1():
    var1 = '变量1'
    print("函数的内部:{}".format(var1))
demo1()
print("函数的外边:{}".format(var1))

5.2除了在函数内部定义变量,Python 还允许在所有函数的外部定义变量,这样的变量称为全局变量。

和局部变量不同,全局变量的默认作用域是整个程序,即全局变量既可以在各个函数的外部使用,也可以在各函数内部使用。

var1="bianliang "
def demo1():
    print("函数的内部:{}".format(var1))
demo1()
print("函数的外边:{}".format(var1))

5.3【global 关键字定义全局变量】

在函数体内定义全局变量。即使用 global 关键字对变量进行修饰后,该变量就会变为全局变量。

def demo1():
    global var1
    var1 = '变量1'
    print("函数的内部:{}".format(var1))

demo1()
print("函数的外边:{}".format(var1))

6.【模块】以主程序运行当前模块

1.【name和main分别是什么?】

__name__是当前模块的一个属性,函数的内置属性

"__main__"是字符串,一对引号是创建字符串的快捷方式

 
def demo():
    print(__name__)
# demo()
if __name__ == '__main__':
    demo()

文章来源地址https://uudwc.com/A/qBJbP

原文地址:https://blog.csdn.net/weixin_49684806/article/details/129446368

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年08月13日 08:41
下一篇 2023年08月13日 08:43