时间:2018-12-8 19:58:10
-----------------------------------------------------------------------------------
0.基本概念
函数可以通过关键字def来定义。后面跟着函数的标识符名称及括号,加冒号。
def sayhello():
print('hello world')#定义函数
sayhello()#调用函数
sayhello()#调用函数
1.函数参数
定义函数时给定形参,调用函数时给定实参。
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 = 9
y = 7
print_max(x,y)#以参数形式传递变量
2.局部变量
x = 50
def func(x):
print('x is ', x)#输出50
x=2
print('changed local x to',x)#输出2
func(x)
print('x is still',x)#输出50
3.global语句
x = 50
def func():
global x
print('x is ', x)#输出50
x=2
print('changed local x to',x)#输出2
func( )
print('x is ',x)#输出2
global声明x是一个全局变量,因此在函数中为x赋值时,这一改动会影响到在主代码块中x的值。
4.默认参数值
默认参数值是常数,不可改变。当用户不想提供值时,可以通过在函数定义时附加一个赋值运算符(=)来指定默认参数值。
def say(message, times=1):
print(message*times)
say('hello')
say('hello ',5)
注意:位于参数列表末尾的才能被赋予默认参数值。
5.关键字参数
通过命名来给参数赋值,而不是根据位置来指定函数中的参数。
优点:不需要考虑参数的顺序。只对希望赋予的参数赋值,其他的具有默认参数值。
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=25,a=100)
6.可变参数
def total(a=5,*number,**phonebook):
print('a',a)
for single_item in number:
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, jone=2231, inge=1560))
输出:
a 10
single_item 1
single_item 2
single_item 3
jack 1123
jone 2231
inge 1560
None
当声明*number的星号参数时,从此处开始直到结束的所有位置参数都将被汇集成一个称为number的元组
当声明**phonebook时,从此处直到结束所有关键字参数都将被收集并汇集成一个名为phonebook的字典
7.return语句
8.DocStrings
文档字符串。
def print_max(x,y):
'''打印两个数值中的最大数。
这两个数应该是整数''' #这是文档字符串
x=int(x)
y=int(y)
if x>y:
print(x,'is maxmum')
else:
print(y,'is maxmum')
print_max(3,5)
print(print_max.__doc__)#双下划线
用函数__doc__来获取print_max中的文档字符串。
----------------------------------------------------------------------------------------------
结束时间:2018年12月8日22:00:10
进度:69/153