Python函数基础
函数定义与调用
函数是用来完成某一特定的功能,在编写程序的过程中可能需要多次用到这一功能,为了编写简单变使用函数,优化了代码,无序编写大量的重复的代码,是程序模块化设计的基础。
函数定义
def function_name():
函数代码块
return 返回值
使用def关键字来定义函数,使用return关键字使函数返回特定值。
例如:
def function_name():
print('这是一个函数')
return 5
函数 return 后面的代码执行,只有在有判断以后可以有多个 return, return 后面无对象的话默认返回None
函数定义之后,开始在程序中调用函数
函数调用
function_name()
这是一个函数
可以看到在调用function_name函数之后,执行函数中的代码块, r e t u r n 5 return \quad5 return5 也执行了,但是没有打印出来,5只是一个返回值,返回值可以赋值给一个新的变量,也可以使用print函数直接打印。return 和 print的区别 return 是函数的返回值,返回值可以赋值给变量,而 print 只是打印出来
b = function_name()
print(b)
print(function_name())
这是一个函数
5
这是一个函数
5
函数参数
必备参数
传参使得函数更加灵活
例如:打印 ∗ l o v e y o u *\quad love\quad you ∗loveyou
def dream(x):
print('{} love you!'.format(x))
dream('I')
dream('He')
dream('She')
I love you!
He love you!
She love you!
例如:计算两数之和和连接两个字符串可以用同一函数完成
def function(a,b):
result = a + b
return result
print(function(1,2))
print(function('I ','Love'))
3
I Love
其中,形式参数与实际参数的区别如下:
必备参数:
function(a,b): a,b形式参数 就是用来占位置的
function(1,2): 1,2实际参数 就是用来进行实际运算的
默认参数
默认参数就是在定义时候形式参数已经有某一特定的值,但是这个值在程序执行过程中是可以修改的,如果给这一默认参数传值,则程序运行时候按照所传的值进行运算,如果没有传值则按照默认值进行计算。
例如:计算一个数与160的和
def number_add_160(a,b=160):
result = a + b
return result
print(number_add_160(1))
161
也可以修改默认参数b的值
def number_add_160(a,b=160):
result = a + b
return result
print(number_add_160(1,3))
4
在传递实参时候,a,b的顺序可以倒置,但是要在传参时标明 a = ∗ , b = ∗ a = *,b=* a=∗,b=∗
def number_add_160(a,b=160):
result = a + b
return result
print(number_add_160(b = 5,a = 8))
13
不定长参数
定义函数时候使用 ∗ a r g s *args ∗args不定长参数,不论传递的参数有几个,均返回一个元组, ∗ a r g s *args ∗args也叫作位置参数
def function(*args): #装包,接收多个值,都是以元组的形式接收的
print(args) #位置参数
function(100,200,300)
(100, 200, 300)
定义函数时候同时使用 ∗ a r g s ∗ k w a r g s *args\quad*kwargs ∗args∗kwargs不定长参数,返回元组和字典, ∗ k w a r g s *kwargs ∗kwargs也叫作关键字参数
def function(*args,**kwags): #**kwargs关键字参数,生成字典
print(args,kwags) #位置参数必须位于关键字参数 位置参数返回元组
function(1,2,34,5,a = 1)
(1, 2, 34, 5) {'a': 1}
同时使用必备参数,位置参数,关键字参数
def function(a,b,c,d,*args,**kwargs): #**kwargs关键字参数,生成字典
print(a,b,c,d,args,kwargs) #位置参数必须位于关键字参数,关键字参数返回字典
function( 1,2,3,4,5,6,7,8,9,e = 11,f = 22)
1 2 3 4 (5, 6, 7, 8, 9) {'e': 11, 'f': 22}