函数
函数_functions是指克重复使用的程序片段。
#function1.py
def say_hello():
print('Hello world')
say_hello()
say_hello()
输出:
Hello world
Hello world
函数参数
#function_param.py
def print_max(a,b):
if a > b:
print(a,'is maximum')
elif a==b:
print(a,'is equal to',b)
else:
print(b,'is maximum')
#直接传递字面值
print_max(3,4)
#以参数的形式传递变量
x=5
y=7
print_max(x,y)
输出:
4 is maximum
7 is maximum
局部变量
#function_loacl.py
x=50
def func(x):
print('x is',x)
x=2
print('Changed local x to',x)
func(x)
print('x is still',x)
输出:
x is 50
Changed local x to 2
x is still 50
global 语句(全局)
#function_global.py
x=50
def func():
global x
print('x is',x)
x=2
print('Change global x to',x)
func()
print('Value of x is',x)
输出:
x is 50
Change global x to 2
Value of x is 2
默认参数值
#function_default.py
def say(message,times=1):
print(message*times)
say('Hello')
say('World',5)
Hello
WorldWorldWorldWorldWorld
关键字参数
#function_keyword.py
def func(a,b=5,c=10):
print('a is',a,'and b is',b,'and c is',c)
func(3,7)
func(25,c=24)
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
可变参数
#function_verargs.py
def total(a=5,*numbers,**phonebook):
print('a',a)
'''声明一个诸如 *param 的星号参数时,从此处开始直到结束的所有 位置参数 都
将被收集并汇聚成一个称为"param"的元组(tuple)。
声明一个诸如 ** param 的双星号参数时,总此处开始直到结束的所有 关键字参数 都
将被收集并汇聚成一个名为param的字典(Dictionary)。
'''
#遍历元组中的所有项目
for single_item in numbers:
print('single_item',single_item)
#遍历字典中的所有项目
for first_part,second_part in phonebook.items():
print(first_part,second_part)
print(total(10,1,2,3,Jack=1123,John=2231,Inge=1560))
输出:
a 10
single_item 1
single_item 2
single_item 3
Jack 1123
John 2231
Inge 1560
None
return 语句
用于函数返回
#function_return.py
def maximum(x,y):
if x < y:
return x
elif x==y:
return 'The numbers are equal'
else:
return y
print(maximum(2,3))
print(maximum(2,2))
print(maximum(3,2))
2
The numbers are equal
2
DocStrings
Documentation Strings文档字符串,建成docstrings。docString是一款你应当使用的重要工具,它能帮助你更好的记录程序,并让其更加易于理解。当程序实际运行时,我们甚至可以通过一个函数来获取文档。
#强烈推荐为所有重要的函数配以文档字符串。
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)
#使用函数__doc_属性来获取函数print_max的文档字符串。
print('__doc__使用如下:')
print(print_max.__doc__)
print('help使用结果如下:')
#使用help()函数,来获取__doc__属性并以一种简洁的方式将其呈现给你,
help(print_max)
5 is maximum
__doc__使用如下:
Prints the maximum of two numbers.打印你两个数值中的最大数。
the two values must be integers.这两个数都应该是整数
help使用结果如下:
Help on function print_max in module __main__:
print_max(x, y)
Prints the maximum of two numbers.打印你两个数值中的最大数。
the two values must be integers.这两个数都应该是整数