python第13天:函数

函数主要分为三类:有参函数、无参函数、匿名函数

一:函数

1:有参函数

假设这样一个场景,有三个值,我们要得到(第一个值加第二个值)乘以第三个值的结果

但是我们有n组这样的数值

1,2,3

4,5,6

7,8,9

……

这么多组

传统写法

print (1+2)*3

print (4+5)*6

print (7+8)*9

……

如果数字比较多,计算也比较复杂,这样写一方面容易出错,另一方面不易维护,那么怎么办

这个时候函数就因运而生了

规格:

def  函数名(参数列表):

     函数体

对于上面的例子我们可以定义函数如下(其中a、b、c即为参数)

>>> def jisuan(a,b,c):
...     print (a+b)*c
...

然后调用函数就可以了jisuan(1,2,3)……

2:无参函数

有参函数有一种兄弟类型函数,叫无参函数,无参函数定义很简单

例:def 函数名():

            函数体


3:匿名函数

关键字 lambda

语法:lambda [arg1[,arg2,.....argn]]:expression

例子:

sum = lambda arg1, arg2: arg1+ arg2;

sum(1,2)                =====>3

sum(3,4)                =====>7


4:关键字参数

关键字参数的优点是啥,是定位准确,且参数跟名字有关,跟输入顺序无关,比如 name,age  也可以是 age,name

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
#调用printme函数
printme( str = "My string");
结果:My string
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
结果:Name:  mikiAge  50

5:缺省参数

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );
结果:Name:  mikiAge  50          Name:  mikiAge  35


6:不定长参数

参数长度不固定,感受到了python的强大之处了吧

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print "输出: "
   print arg1
   for var in vartuple:
      print var
   return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );
结果:输出:10    输出:70   60   50



如果我们要获取函数执行结果怎么办,可以通过return语句来传递函数执行结果

4:return 语句

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print "函数内 : ", total
   return total;
 
# 调用sum函数
total = sum( 10, 20 );
结果:30

二:函数变量

主要分为两种:局部变量、全局变量,顾名思义,局部的只是在函数内部有效,全局的在整个文件都有效,看下面的例子

#!/usr/bin/python
# -*- coding: UTF-8 -*-

total = 0; # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
   #返回2个参数的和."
   total = arg1 + arg2; # total在这里是局部变量.
   print "函数内是局部变量 : ", total
   return total;
 
#调用sum函数
sum( 10, 20 );
print "函数外是全局变量 : ", total 
结果: 函数内是局部变量 :  30   函数外是全局变量 :  0



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值