python基础学习(7)

函数的定义与调用

函数的创建

def calc(a,b):   #calc变量名,a,b型参
    c=a+b
    return c
d=calc(100,200) #calc(100,200)实参
print(d)
#300

函数的返回值

函数返回多个值时,结果为元组

def fun(num):
    odd=[] #存奇数
    even=[] #存偶数
    for i in num:
        if i%2:
            odd.append(i)
        else:
            even.append(i)
    return odd,even

print(fun([10,21,30,41,50,61]))
#([21, 41, 61], [10, 30, 50])
  • 如果函数没有返回值(函数执行完毕之后,不需要给调用处提供数据),return可以省略不写
  • 函数的返回值,如果是1个,直接返回类型
  • 函数的返回值,如果是多个,返回的结果为元组

函数的定义

函数定义默认参数

  • 函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参
def fun(a,b=10):
    print(a,b)


fun(10) #只有一个参数,b采用默认值
fun(20,30) #30将b的默认值10替换

'''
10 10
20 30
'''

函数的参数定义

  1. 个数可变的位置参数
  • 定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数
  • 使用*定义可变的位置形参,结果为一个元组
def fun(*args):
    print(args)

fun(10)
fun(10,20,30,40)
'''
(10,)
(10, 20, 30, 40)
'''
  1. 个数可变的关键字形参
  • 使用**定义个数可变的关键字形参,结果为一个字典
def fun(**args):
    print(args)

fun(a=10)
fun(a=10,b=20,c=30)
'''
{'a': 10}
{'a': 10, 'b': 20, 'c': 30}

'''

变量的作用域

  • 局部变量
    在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会成全局变量
ef fun():
    global age #声明为全局变量
    age=20
    print(age)

fun()
print(age)

20
20
  • 全局变量
    函数体外定义的变量,可作用于函数内外

递归函数

递归的调用过程,每递归调用一次函数,都会在栈内存分配一个栈帧,每执行完一次函数,都会释放相应的空间

def fun(n):
    if n==1:
        return 1
    else:
        res=n*fun(n-1)
        return res

print(fun(6))

猜你喜欢

转载自blog.csdn.net/weixin_45291045/article/details/111700640