Python函数

目录

函数的定义

# java
public void 方法名(形参1,形参2,...){
    方法体;
    return 值;
}

# python
def 函数名(形参1,形参2,...):
    函数体
    return 值

函数的调用:

函数名(实参1,实参2,...)
    

总结:函数通过def定义,通过return返回,如果没有return那么返回None。
作用:实现一种功能,是一种封装。

# 定义
def add():
    print("Hello World")

# 调用
add()

# 在主方法调用(main+“回车” 自动生成)
if__name__=='__main__':  
    add()

根据是否有参数和是否有返回值,可以把函数分为四类

1、无参无返回(无返回表示返回None)

# 定义:   
def run():
    print("我独自一个人在跑步")

# 调用:
run()

2、无参有返回

# 定义:
def xzy():
    print("我在努力写作业")
    return "作业"

# 调用:
return_value=xzy()
print(return_value)

3、有参无返回

# 定义:
def qj(money,jinzi,shoushi):
    print("我抢劫完就跑了")

# 调用:
qiangjie("钱","金子","首饰")

4、有参有返回
# 定义:
def add(a,b):
c=a+b
return c

# 调用:
sum=add(30,40)
print(sum)

总结:有参数就要传值,有返回值一般就要接收

有特别含义的参数

1.有默认值的参数

# 定义:(两个参数只有一个有默认值要写到后面)
def adds(a,b=100):
    c=a+b
    return c

# 调用:
print(adds(30))
print(adds(30,200))

2.有不定长的参数(这种参数会把传入的值组合成一个元组)
# 定义:
def add(a,
b):
print(a)
print(b)

# 调用:
add(30)
add(30,100)
add(30,100,200,300,400,500,600)

3.带**不定长的参数(这种参数会把传入的值组合成一个字典)

# 定义:
def adds(a,**b):
    print(a)
    print(b)

# 调用:
adds(30)
adds(30,aaa=2,bbb=3,ccc=4)

嵌套函数

1.嵌套调用(在一个函数里面调用另一个或多个函数)

def sort(lis):
    for cs in range(len(lis)):
        for a in range(len(lis)-1):
            if lis[a]>lis[a+1]:
                temp=lis[a]
                lis[a]=lis[a+1]
                lis[a+1]=temp
    test()
    return lis

def test():
    print("WWWWWWWWW")

2.嵌套定义(内部的函数只能在内部调用)

def a():
    test=1
    print(test)
    def b():
        test=2
        print(test)
        def c():
            test=3
            print(test)
    b()

函数递归

1.自己调用自己

def a():
    print("aaaaaa")
    a()

2.函数之间相互调用

def a():
    print("aaaaaa")
    b()

def b()
    print("bbbbbb")
    a()

匿名函数lambda

sum=lambda a,b:a+b

print(sum(10,20))

值传递和引用传递

  • 值传递:只是传递变量的值
  • 引用传递:传递的是指向值的内存地址。例如(传list和dict)

当函数传入list或者是dict时,则是引用传递

上一篇:面试算法题2——在大量重复数据中找到不重复数据


下一篇:482. 合唱队形