Python学习笔记——函数定义、调用

一、定义一个函数

定义一个函数必须遵循如下的简单规则

  1. 函数代码块以def 关键词开头,后接函数标示符名称和圆括号()
  2. 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数
  3. 函数的第一行语句可以选择性的使用文档字符串——用于存放函数说明
  4. 函数内容以冒号开始并且缩进
  5. return[expression]结束函数,选择性的返回一个值给掉用方,如果没有return那么就返回空

语法:
def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

默认情况下,传递的参数值是与参数定义顺序保持一致的,其实c、java、sql等都是类似的

二、函数调用

函数调用比较简单,和其他语言类似,不赘述

三、参数传递类型


参数传递类型是按值传递还是按引用传递,其实在c、c++、C#等编程语言中也有参数传递问题,但是在python中所有传递的参数(自变量)都是按照引用传递的,也就是说在函数中改变了参数的内容,那么其他地方都会跟着改变。

四、参数的类型

Python函数可以使用的参数类型有四类:
  1. 必备参数
  2. 命名参数
  3. 缺省参数
  4. 不定长参数
(一)、必备参数
必备参数须以正确的顺序传入函数,调用时的数量必须和声明时一样。
(二)、命名参数
命名参数和函数调用关系紧密,调用方用参数的命名确定传入的参数值,可以跳过不传值的参数,或者乱序传入参数,此时python解释器能够用参数名匹配参数值
这点类似sql存储过程的调用
(三)、缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
#!/usr/bin/python

#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;

#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );
#以上实例输出结果:  
#Name:  miki
#Age  50
#Name:  miki
#Age  35 

(四)、不定长参数
在需要一个函数能够处理比当初声明时更多的参数的时候,这些参数叫做不定长参数。基本语法如下:
def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

加入了型号*的变量名会存放所有未命名的变量参数,当然也可以选择不多传参数,例如:
#!/usr/bin/python

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

# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );


五、匿名函数

在C#、Java中经常会用到匿名函数,Python中可以使用lambda关键词创建小型匿名函数,这种匿名函数是由于省略了def声明函数的标准步骤而得名的。
基本语法
lambda [arg1 [,arg2,.....argn]]:expression
g = lambda x : x**2
冒号前面是参数,可以多个参数,用逗号分隔,冒号右边是返回值
匿名函数适用的场所:
1. 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
2. 对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。
3. 使用lambda在某些时候让代码更容易理解。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值