python学习笔记(9)--函数

函数定义:

def <函数名>(<参数(0个或多个)>):
  函数体
  return <返回值>

参数有非可选参数,和可选参数,可选参数放在参数列表的最后,可以为可选参数指定默认值。如下:

def fact(n,m=1):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s//m
>>> fact(10)
3628800
>>> fact(10,5)
725760

函数定义时可以设计可变数量参数,既不确定参数总数量。

def <函数名>(<参数>,*b):
  函数体
  return <返回值>

举例如下;

def fact(n,*b):
    s = 1
    for i in range(1,n+1):
        s *= i
    for item in b:
        s *= item
    return s

结果如下:

>>> fact(10,3)
10886400
>>> fact(10,3,5,8)
435456000

函数的返回值,可以返回多个返回值,如下代码:

def fact(n,m=1):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s//m, n, m

结果如下:

>>> fact(10,5)
(725760, 10, 5)
>>> a,b,c=fact(10,5)
>>> print(a,b,c)
725760 10 5

函数的局部变量和全局变量,如果函数内部使用的局部变量为组合数据类型且未创建,等同于全局变量。

>>> ls=["F","f"]
>>> def func(a):
    ls.append(a)
    return

>>> func("c")
>>> print(ls)
['F', 'f', 'c']

类似于C语言中的指针操作。如果函数内部又定义了一个同名的ls列表,那么ls就属于局部变量。

>>> ls = ["F", "f"]
>>> def func(a):
    ls=[]
    ls.append(a)
    return

>>> func("c")
>>> print(ls)
['F', 'f']

lambda函数是一种匿名函数,即没有名字的函数,返回的是函数名,lambda函数用于定义简单的,能够在一行内表示的函数。

<函数名> = lambda<参数>:<表达式>

>>> f = lambda x,y:x+y
>>> f(10,15)
25
>>> f = lambda:"hello"
>>> print(f())
hello

lambda函数主要用作一些特定函数或方法的参数。

原文地址:https://www.cnblogs.com/xingmuxin/p/8946160.html