pythin 基础之函数01

时间:2021-05-11 18:37:18

一、函数定义

#
def function1():
    function_suite

二、函数调用

#def function3():    print "测试函数"function3()#运行结果:#测试函数

三、函数返回值

#def function2():    print "测试函数"    return True rr = function2() # 测试函数返回值print rr#运行结果:#测试函数#True#1、函数遇到return则不继续执行#2、返回值可传递给调用者#3、return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None

四、参数传递

#def function4(a):   #  定义函数时写的参数叫形参    print "测试参数传递 %s" % a    return Truerr = function4("test")  # 调用函数时写的参数内容叫实参数print rr#如果有多个实参,出拿地参数时必须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

五、关键字参数

#def function4(a, b):    print a, bfunction4(b = "hello", a = "world")#运行结果:#world hello#1、指定形参传实参时可以不按照顺序写#2、使用关键字参数允许函数调用时参数的顺序与声明时不一致

六、缺省参数

#def function4(a, b="hello"):    print a, bfunction4("abd")function4("abc", "edf")#运行结果:#abd hello#abc edf#1、如果没有为形参传实际参数,则参数使用默认值。#2、该种情况下,指定默认值得参数一定要写在后面,不然会报错。

七、动态参数1(不定长参数)

#def function(*a):  # 可以和普通参数一起声明    print a, type(a)function(1,2,3,"a","b","c")#运行结果#(1, 2, 3, 'a', 'b', 'c') <type 'tuple'>#1、函数可接受任意多个参数,函数默认会把所有参数放在一个元组中,每个参数作为元组的一个元素#2、缺省参数的值如果没有传入,则被认为是默认值

八、动态参数2

#def function(**a):    print a, type(a)function(AA = "aa", BB = "bb")#运行结果#{'AA': 'aa', 'BB': 'bb'} <type 'dict'>#1、传入的参数必须以key = value的形式传递,可传递任意多个,函数会把传进来的参数放在字典中保存,每个参数作为字典的一组元素

九、动态函数3

#def function(k, *a, **b):    print k    print a, type(a)    print b,type(b)function(1,2,3,"a","b",("hello", "world"), AA = "aa", BB = "bb")#运行结果:# 1# (2, 3, 'a', 'b', ('hello', 'world')) <type 'tuple'># {'AA': 'aa', 'BB': 'bb'} <type 'dict'>#1、此种情况任何参数都可以传递,但是如果有普通的形参(k),传递的第一个参数一定会给k。#2、此种情况 **b一定要放在最后,*a放在**b之前

九、全局变量与局部变量

#建议全局变量全大写:局部变量全小写#局部变量:在函数内声明的变量,函数内部使用#全局变量:在全局下声明的变量,所有人都可以用   #默认情况函数可以调用全局变量,不可以修改全局变量   #如果函数内要修改全局变量,可用global声明该变量为全局变量,后在修改def func1():    a = 30    print aa = 10func1()print a#运行结果:#30#10# 以上结果说明默认情况下在函数内部不能对全局变量进行修改。
def func1():    global a    a = 30    print aa = 10func1()print a#运行结果#30#30#如果在函数内部修改全局变量,需要在函数内部用global关键字声明该变量为全局变量。


本文出自 “学无止境” 博客,请务必保留此出处http://20120809.blog.51cto.com/10893237/1975699