Python函数

函数

函数是实现一定功能,可以重复多次调用的代码,通过输入参数值,返回需要的结果;
函数在使用前必须定义,函数的类型即返回值的类型;
函数名不能以数字开头;
函数的参数在一对圆括号中,参数可以有一个或多个,参数之间由逗号隔开,圆括号中的参数叫形式参数;
括号以冒号结束,冒号下面是函数主体;
函数的调用采用函数名加一对圆括号,括号内的参数是传递给函数的具体值;
实际参数必须和形式参数一一对应;

python中任何东西都是对象,所以参数只支持引用传递的方式;通过名称绑定机制,把实际参数的值和形式参数的名称绑定到一起;
形式参数和实际参数指向内存中的同一个存储空间;
#函数定义格式
def 函数名(参数1,参数2...):
    函数体
return 表达式

#函数的定义和调用

from __future__ import division
def arithmetic(x,y,operator):
    result = {
        "+" : x + y,
        "-" : x - y,
        "*" : x * y,
        "/" : x / y
        }
    return result.get(operator)             #如果没有return语句,直接调用函数,返回为None

print(arithmetic(1,2,"+"))                  #函数调用


from __future__ import division
def arithmetic(x = 1,y = 1,operator = "+"):         #给参数提供默认值
    result = {
        "+" : x + y,
        "-" : x - y,
        "*" : x * y,
        "/" : x / y
        }
    return result.get(operator)


print(arithmetic())
print(arithmetic(y = 3,operator = "-"))
print(arithmetic(x = 4,operator = "+"))
print(arithmetic(2,5,"*"))                  #operator不能掉引号


不定长参数

有时候需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。
加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。
#定义方式
def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]


#可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print ("输出: ",arg1)
   for var in vartuple:
      print(var)
   return
 
#调用printinfo 函数
printinfo(10)
printinfo(70,60,50)


#简单例子
def func(*args):
    print(args)

func(1,2,3)


函数的返回值

函数的返回值使用return语句。return后面可以是变量或表达式;
没有return语句的函数返回None;
#return返回多个值
def func(x,y,z):
    l = [x,y,z]
    l.reverse()
    numbers = tuple(l)
    return numbers

x,y,z = func(0,1,2)
print(x,y,z)

#return返回多个值
def func(x,y,z):
    l = [x,y,z]
    l.reverse()
    a,b,c = tuple(l)
    return a,b,c

x,y,z = func(0,1,2)
print(x,y,z)


def func(x):
    if x > 0:
        result = "x > 0"
    elif x == 0:
        result = "x == 0"
    else:
        result = "x < 0"
    return result

print(func(-2))


函数的嵌套

函数的嵌套指在函数的内部调用其他函数;
def sum(a,b):
    return a + b

def sub(a,b):
    return a - b

def func():
    x=1;y=2;m=3;n=4;
    return sum(x,y)*sub(m,n)

print(func())


递归函数

递归函数就是自己调用自己,函数嵌套的是函数本身;
递归需要编写递归结束条件;否则是死循环;
#递归计算阶乘
def refunc(n):
    i = 1
    if n > 1:
        i = n
        n = n * refunc(n - 1)
    print("%d! = " %i,n)
    return n

refunc(5)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值