四、python函数
函数是封装好的一段代码块,供外部调用。
1 global全局变量用法。
x = 10 def func(): global x #用global关键字说明函数内部引用的是外部的全局变量。 print('x is', x) x = 2 print('Changed global x to', x) #全局的x已经在函数内部被修改了。 func() print('Value of x is', x) #x已经在函数内部被修改。 #进行如下测试 x is 10 Changed global x to 2 Value of x is 2
2 函数中利用默认参数
def say(message, times=1,test = 'haha'): #此处定义参数的默认值,注意,这种方法只能写在参数列表的最后 print(message * times+test) say('Hello') say('World', 5) #进行如下测试 Hellohaha WorldWorldWorldWorldWorldhaha
3 函数中使用关键字参数
def func(a, b=5, c=10): print('a is', a, 'and b is', b, 'and c is', c) func(3, 7) #a,b处赋值 func(25, c=24) #a,c处赋值 func(c=50, a=100) #由命名,即关键字参数指定。 #进行如下测试 a is 3 and b is 7 and c is 10 a is 25 and b is 5 and c is 24 a is 100 and b is 5 and c is 50
4 函数中传入可变参数----函数中如何传入元组,字典
例如 def total(*numbers, **phonebook): 第一个参数传入的是元组(长度可变),第二个传入的是字典(长度可变),定义如下函数进行测试。
def total(a,*numbers,**phonebook): print('a',a) #遍历元组中的内容 for i in numbers: print(i,end=" ") print('\n') #遍历字典中的所有元素 for first,second in phonebook.items(): print(first,second) var = total(10,1,2,3,book="java",name="php",item="python") print(var) #结果 a 10 1 2 3 item python book java name php None
说明:当我们声明一个诸如 *param的星号参数时,从此处开始知道结束的所有位置参数都将被收集并汇集成一个称为“param”的元组。
类似的,当我们声明一个诸如**param的双星号参数时,从此处开始直到结束的所有关键字参数都将被收集并汇集成一个名为param的字典。
5 python中的return语句
每个函数都在其末尾隐含了一句 return None,除非你写了自己的return语句。
6 pass关键字作用
pass用于指示一个没有内容的语句块。例如如下代码:
def some_function(): pass print(some_function()) #输出结果 None
7 文档字符串
DocStrings是一款你应当使用的重要工具,它能够帮助你通过一个函数来获取文档。如下代码:
def print_max(x, y): '''Prints the maximum of two numbers.打印两个数值中的最大数。 The two values must be integers.这两个数都应该是整数''' # 如果可能,将其转换至整数类型 x = int(x) y = int(y) if x > y: print(x, 'is maximum') else: print(y, 'is maximum') print_max(3, 5) print(print_max.__doc__) #可见,__doc__是函数的一个属性 #结果输出 5 is maximum Prints the maximum of two numbers.打印两个数值中的最大数。 The two values must be integers.这两个数都应该是整数
说明:该文档字符串所约定的是一串多行字符串,其中,第一行以某一个大写字母开始,以句号结束。第二行为空行,后跟的第三行开始是任何详细的解释说明。
参考《byte-of-python-chinese-edition》