重读LPTHW-Lesson18-21 函数
1.def 定义函数,选取合适的函数名,原则是易于理解、阅读。函数名格式与变量命名格式相同,以字母开始,可以包含字母、数字、下划线。函数命名后,把参数放在()中,可以无参数。然后:结束函数命名,开始函数主体部分。主体部分开头缩进4个空格。
# -*- coding: utf-8 -*- def print_input(user_input): user_input = raw_input("请输入需打印的内容".decode('utf-8').encode('gbk')) print user_input
2.可以在定义函数时指定某个/些参数的默认值:
def exponential(bottom,exponent = 2): value = bottom ** exponent print "%d ** %d = %d" % (bottom,exponent,value)
exponential(20)
exponential(20,3)
输出:
PS:只有在末尾的参数可以定义默认参数值。def func(a,b = 5)有效;而def func(a = 5,b)无效
3.使用global 来声明全局变量。注意全局变量和局部变量的区别
(1)局部变量的例子:
def func(x): print "x is ",x x = 2 print "Change local x to",x x = 50
func(x) print "x is still",x
输出:
(2)声明全局变量:
def func(): global x print "x is",x x = 2 print "Change local x to",x x = 50 func() print "Now value of x is",x
输出:
4.在调用函数而为参数赋值时,可以使用关键参数法。即调用的函数有多个参数,只想指定其中一部分则可以通过命名来为这些参数赋值,这样的优点有:①不用担心参数赋值的顺序②假设其他参数有默认值的话,可以只给部分参数赋值。
eg:
def func(a,b = 5,c = 10): print "a is",a,"and b is",b,"and c is",c func(23,c=34) #23赋值给a,b用默认值,c赋值34 func(c=2,a = 1) #c赋值2,a赋值1,b默认值5 func(12,23) #a赋值12,b赋值23,c默认值10
输出: