Python全栈工程师

14-1 函数定义与默认值

2019-07-12  本文已影响3人  BeautifulSoulpy

我们总在感叹生活的苦,抱怨命运对我们的过分苛求,可是你看,这世上哪有真正的顺风顺水,每个人都在负重前行!

1.函数

1.1 函数

数学定义:y=f(x) ,y是x的函数,x是自变量。y=f(x0, x1, ..., xn)
    Python函数
def add(x,y):         #def 标识符;参数:x,y为形参
    return(x+y)     # return 函数返回值
    
add(2,3)    
#调用必须要有小括号;调用送实参进去;
# 2,3为实参

# print()本身没有返回值(none,none也是一个合法数据),只是有打印的作用
print(print(add(2,3)))    

Python语言的坏处: (语言规范,掌控这个动态性就是好处)
print(add([1],[2]))  #动态语言:控制不了传入的参数是什么类型;
print(add('a','b'))
----------------------------------------------------------------------------
5
None
[1, 2]
ab

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

完成一定的功能

1.2 函数的作用

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

1.3 函数的分类

内建函数,如max()、reversed()等
库函数,如math.ceil()等
lambda 表达式 匿名函数

2.函数定义、调用

2.1 def语句定义函数

def 函数名(参数列表):
函数体(代码块)
[return 返回值]

1.函数名就是标识符,命名要求一样
2.语句块必须缩进,约定4个空格
3.Python的函数没有return语句,隐式会返回一个None值
4.定义中的参数列表成为形式参数,只是一种符号表达,简称形参

查看是否可调用callable
print(callable(add))   #函数是否可调用
callable(add(4,5))   # 9是否可调用;
---------------------
True
False

2.2调用

1.函数定义,只是声明了一个函数,它不会被执行,需要调用
2.调用的方式,就是函数名加上小括号,括号内写上参数
3.调用时写的参数是实际参数,是实实在在传入的值,简称实参

3.函数参数

参数调用时传入的参数要和定义的个数相匹配(可变参数例外)

位置参数

  • def f(x, y, z) 调用使用 f(1, 3, 5)
  • 按照参数定义顺序传入实参

关键字参数

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

传参

要求位置参数必须在关键字参数之前传入,位置参数是按位置对应的
f(z=None, y=10, x=[1])
f((1,), z=6, y=4.1)
f(y=5, z=6, 2) #

4.函数参数默认值

4.1参数默认值(缺省值)

定义时,在形参后跟上一个值
def add(x=4, y=5):
return x+y

测试调用 add(6, 10) 、add(6, y=7) 、add(x=5) 、add()、add(y=7)、 add(x=5, 6) 、add(y=8, 4)、add(x=5, y=6)、add(y=5, x=6)

测试定义后面这样的函数 def add(x=4,y)

4.2作用

  • 参数的默认值可以在未传入足够的实参的时候,对没有给定的参数赋值为默认值
  • 参数非常多的时候,并不需要用户每次都输入所有的参数,简化函数调用

举例
定义一个函数login,参数名称为host、port、username、password

def login(host='127.0.0.1',port='8080',username='wayne',password='magedu'):
    print('{}:{}@{}/{}'.format(host, port, username, password))

login()
login('127.0.0.1', 80, 'tom', 'tom')
login('127.0.0.1', username='root')
login('localhost', port=80,password='com')
login(port=80, password='magedu', host='www')
---------------------------------------------------------------
127.0.0.1:8080@wayne/magedu
127.0.0.1:80@tom/tom
127.0.0.1:8080@root/magedu
localhost:80@wayne/com
www:80@wayne/magedu

总结:
1.函数的基本构成要素:def 标识符,括号,形参,实参,返回值;
2. 函数参数默认值中的:位置实参,关键字实参

上一篇下一篇

猜你喜欢

热点阅读