【Python函数01】Python运维自动化之函数参数与返回值

Python 函数

函数

数学定义

  • y=f(x) ,y是x的函数,x是自变量。y=f(x0, x1, …, xn)

Python函数

  • 由若干语句组成的语句块、函数名称、参数列表构成,它是组织代码的最小单元
  • 完成一定的功能

函数的作用

  • 结构化编程对代码的最基本的封装,一般按照功能组织一段代码
  • 封装的目的为了复用,减少冗余代码
  • 代码更加简洁美观、可读易懂

函数的分类

  • 内建函数,如max()、reversed()等
  • 库函数,如math.ceil()等
  • 自定义函数,使用def关键字定义

函数定义

def 函数名(参数列表):
	函数体(代码块)
    [return 返回值]   
  • 函数名就是标识符,命名要求一样
  • 语句块必须缩进,约定4个空格
  • Python的函数若没有return语句,会隐式返回一个None值
  • 定义中的参数列表称为形式参数,只是一种符号表达(标识符),简称形参

函数调用

  • 函数定义,只是声明了一个函数,它不能被执行,需要调用执行
  • 调用的方式,就是函数名后加上小括号,如有必要在括号内填写上参数
  • 调用时写的参数是实际参数,是实实在在传入的值,简称实参
def add(x, y): # 函数定义
    result = x + y # 函数体
    return result  # 返回值
out = add(4,5) # 函数调用,可能有返回值,使用变量接收这个返回值
print(out) # print函数加上括号也是调用

上面代码解释:

  • 定义一个函数add,及函数名是add,能接受2个形式参数
  • 该函数计算的结果,通过返回值返回,需要return语句
  • 调用时,通过函数名add后加2个实际参数,返回值可使用变量接收
  • 函数名也是标识符
  • 返回值也是值
  • 定义需要在调用前,也就是说调用时,已经被定义过了,否则抛NameError异常
  • 函数是可调用的对象,callable(add)返回True

看看这个函数是不是通用的?体会一下Python函数的好处

#def 关键字,define定义,定义时
def add(x,y):# add 标识符,函数名,指向一个函数对象。
#(参数列表),参数列表中可以有n个参数(可以是0个),这些参数叫做形式参数,简称形参。形参也是标识符
	result = x+y   #函数逻辑
    return result #retun 返回值
    
   
add(4,5)#函数标识符后面加(),就是调用、执行called。调用时
#(4、5) 实实在在的参数填充,称为实际参数,简称实参。调用时
# add([1], [2])
o = 100 
P = 200
add(o, p)
输入:
def add(x,y):
	r = x + y
	return r	
add(1,2),add([1],[2]),add('a','b'),add(b'a',b'b'),add((1,),(2,)),add((1),(2))

输出:(3, [1, 2], 'ab', b'ab', (1, 2), 3)

函数参数

函数在定义是要定义好形式参数,调用时也提供足够的实际参数,一般来说,形参和实参个数要一致

(可变参数除外)。

形参
可以有缺省值,定义时,如果没有提供该参数,动用缺省值。缺省值的定义往后放
除了可变参数外,都可以有缺省值。定义时,如果没有提供该参数,动用缺省值仅位置和普通参数,一起算,缺省值的定义往后放仅关键字参数,缺省值无所谓先后

51 普通形参:可以有缺省值,2种传实参方式都可以用
2 *args 可变仅位置形参,只能接收按照位置传入的实参,可以接收0个或任意个。没有缺省值
3 **kwargs可变仅关键字形参,只能接收关键字传入的实参,可以接收0个或任意个。行参最后一个,没有缺省值
4 keyword-only形参,*args,或*,之后,只仅仅能接收关键字传入实参。缺省值,无所谓前后
5 positional-only形参,/之前,仅仅接收位置传入参数

实参传参方式

1、位置传参
定义时def f(x, y, z), 调用使用 f(1, 3, 5),按照参数定义顺序传入实参
2、关键字传参

定义时def f(x, y, z),调用使用 f(x=1, y=3, z=5),使用形参的名字来传入实参的方式,如果使用了形参名
字,那么传参顺序就可和定义顺序不同

要求位置参数必须在关键字参数之前传入,位置参数是按位置对应的

#传实参
#1 按位置对应,位置传参
#2 按照名称对应,关键字传承

def add(x, y):
    print(x)
    print(y)
    print('-' * 30)
    
add(4, 5)
add(5, 4) # 按顺序对应,反过来x和y值就不同

add(x=[4], y=(5,))
add(y=5.1, x=4.2) # 关键字传参,按名字对应,无所谓顺序

add(4, y=5) # 正确
add(y=5, 4) # 错误传参 SyntaxError: positional argument follows keyword argument
add(x=5, 4) # 错误传参 SyntaxError: positional argument follows keyword argument
					 #SyntaxError:位置参数紧跟关键字参数

切记:传参指的是调用时传入实参,就2种方式。

下面讲的都是形参定义。

形参缺省值

缺省值也称为默认值,可以在函数定义时,为形参增加一个缺省值。其作用:

  • 参数的默认值可以在未传入足够的实参的时候,对没有给定的参数赋值为默认值
  • 参数非常多的时候,并不需要用户每次都输入所有的参数,简化函数调用
def add(x=4, y=5):
	return x+y
测试调用 add(),add(x=5),add(y=7),add(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值