一、函数简介
1、函数是什么?
函数也是一个对象(对象是内存中专门用来存储数据的一块区域),用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次的调用。
2、创建函数:def 函数对象():
def 函数名([形参1,形参2,...形参n]) :
代码块
- 函数名(function_name):函数名可以包含字母、数字、下划线、但是不能以数字开头,并且区分大小写
- 函数参数(arg1):调用一个函数时可以传递的参数,参数可以没有,也可以有一个或多个
- 函数内容(function body):在函数的内部,与"def"相比需要缩进4个空格
- 函数返回值(return value):函数执行完成后返回的值,也可以不返回内容,默认为None。在函数中,return后的代码都不会执行,return 一旦执行函数自动结束
- 文档字符串(doc str):文档字符串就是函数的说明,可以通过help()函数来查看函数的说明,在函数的第一行写一个字符串就是文档字符串
help(print)
def fn(a:int,b:bool,c:str='hello') -> int:
'''
这是一个文档字符串的示例
函数的作用:。。。。。
函数的参数:
a,作用,类型,默认值。。。。
b,作用,类型,默认值。。。。
c,作用,类型,默认值。。。。
'''
return 10
help(fn)
3、调用函数:函数对象()
函数中保存的代码不会立即执行,需要调用函数代码才会执行
print('定义一个函数:')
def fn() :
print('这是我的第一个函数!')
fn()#fn是函数对象 fn()调用函数
print('*'*50)
print('定义函数时指定形参:')
def fn2(a , b) :
print(a,"+",b,"=",a + b)
fn2(10,20)# 调用函数时,来传递实参
二、函数的参数
在定义函数时,可以在函数名后的()中定义数量不等的形参,多个形参之间使用,隔开
- 形参(形式参数):定义函数时定义形参,定义形参就相当于在函数内部声明了变量,但是并不赋值
- 实参(实际参数):调用函数时传递实参,传递实参相当于赋值给对应的形参
1、必须参数:函数定义时一旦定义了未赋值的形参,则该参数就是必须参数,调用时不传递会报错
2、 默认参数:在定义函数时给参数添加默认值,如果调用函数时没有传入参数,函数就会使用默认值。
def fn(a,b,c = 'nihao'):
print('a是:' ,a )
print('b是:' ,b )
print('c是:', c)
print('必须参数与默认参数:')#a和b是必须参数,c是默认参数,默认值是'nihao'
fn( 5 , 2)
print('*'*50)
fn( 5 , 2 , 666)#函数在调用时,解析器不会检查实参的类型,实参可以传递任意类型的对象,故通常定义的函数需要进行数据类型的检查
print('*'*50)
fn()
3、位置参数:按照形参定义的顺序去传递实参
4、关键字参数:使用关键字参数可以不按形参的顺序来调用函数
def fn(a,b):
print('a是:' ,a )
print('b是:' ,b )
print('位置参数:')
fn(10,2)#位置参数,按照对应位置的实参赋值给对应位置的形参
fn(2,10)
print