python函数

函数定义与调用

def hello():
    print("Hello world!")
    print("Hello world!")
    print("Hello world!")

def my_func():
    print("我爱python")

print("开始")
my_func()
print("结束")

python函数_第1张图片

带有参数的函数

def my_sum(a,b):
    print(a+b)

my_sum(10,20)

实参可以是常量,变量,表达式,而形参只能是变量

定义函数时,形参没有值,只是一个变量名

返回值的函数

自带的len函数就是返回值函数

print(len("hello python"))
def my_sum(a, b):
    return a + b

print(my_sum(10, 20))

计算圆半径的函数(平方就是2个*号)

def cir(r):
    pai=3.14
    return pai*r**2
print(cir(10))

局部变量

局部变量从调用函数的时候开始在内存出现,函数调用完毕,局部变量从内存消失

如果一个函数内部定义了局部变量,但这个函数没有被调用,那么局部变量也不在内存中存在

全局变量

全局变量一般定义在函数定义的上方

全局变量从定义变量开始在内存中出现,一直到程序运行完成,和程序一起从内存中消失

global关键字

当需要在函数内部修改全局变量的值,修改前需要用global修饰全局变量的名字

num=1
def my_fun1():
    global num
    num=10
    return num
def my_fun2():
    return num


print(my_fun2())    # 1
print(my_fun1())    # 10
print(my_fun2())    # 10

形参和实参的值传递

如果函数的参数为数字或者字符串,在函数内部,针对形参使用赋值语句,不会影响调用函数时传递的实参的值

def my_func(a):
    a+=1    # 修改了形参a的值
    print(a)

a=10
my_func(a)    # 11
print(a)    # 10

形参本质就是一个局部变量

如果函数的参数为列表,集合,字典等类型,函数内部修改了参数的内容,会影响到外部的数据

a=[1,2,3]
def my_test1(a):
    a[0]=10

print(a)    # [1,2,3]
my_test1(a)
print(a)    # [10,2,3]

形参的缺省值

不能把缺省值的形参写在没有缺省值形参的前面

def my_func1(a=10,b):
    print(a,b)

def my_func2(a,b=100):
    print(a,b)

my_func2(1)    # 1 100
my_func2(1,2)    # 1 2

匿名函数

# def my_sum(a,b):
#     return a+b

my_sum=lambda a,b:a+b
num1=my_sum(3,4)
print(num1)    # 7
num1=(lambda a,b:a if a>b else b)(3,4)
print(num1)

lambda注意事项

匿名函数内部只能有一条语句,而且这条语句要有个具体的值返回

匿名函数不能使用print

你可能感兴趣的:(python,python,开发语言)