python基础5-函数,,函数:1、函数可以比


函数:
1、函数可以比作是一个工具,函数即“变量”,“变量”必须先定义后引用。未定义而直接引用函数,就相当于在引用一个不存在的变量名,也就是函数必须是先定义,后调用
2、函数有内置函数,比如:len(),max(),sum();而自定义函数就是以def加函数名根据需求自定义的一个工具
3、pyton解释器只对函数做语法检查,不执行代码,也就说,语法错误在函数定义阶段就会检测出来,而代码的逻辑错误只有在执行时才会知道

定义函数的三种形式:
#1、无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印
#2、有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值
#3、空函数:设计代码结构

函数的定义语法:
def 函数名(参数1,参数2,...):
"""注释"""
函数体
return 返回值

示例1:
def p(): #这个函数括号里面没有参数表示这个函数是无参函数
print(‘===========‘)

def h(w): #这里的w表示这个函数是有参函数
print(w)#这里使用print表示在调用时可以直接执行p()打印函数的结果值

p()
p()
h(‘hello harry‘)
p()
p()


示例2:
def auth(user:str,passwd:str): #冒号后面的str表示该值的定义类型
if user == ‘harry‘ and passwd == ‘123‘:
return (‘1‘) #return表示该函数的返回值,但是不直接显示结果值

u = input(‘user:‘.strip())
p = input(‘passwd:‘.strip())
r = auth(u,p) #定义函数时带了参数那么在引用时也需要携带参数
print(r) #执行print来打印函数值

执行顺序:
示例3:
def foo():
print(‘this foo‘)
bar()
foo()
#执行这个函数会打印this foo,但是在bar这报错,因为在检查函数内语法时是正常的,但是当执行foo()时会提示bar函数错误,也就是说函数语法正常,但是函数在运行时没有找到bar函数,所以报错

示例4:
def foo():
print(‘this foo‘)
bar()
def bar():
print(‘this bar‘)
foo()
#这段代码执行不会报错,因为函数是检查语法但是不执行,只是直接加载到内存中,当调用时会在内存中找到这个函数并执行

有参和无参:
def muth(): #无参数函数
while True:
user = input(‘user:‘)
if not user:continue #表示在user值为空时成立
passwd = input(‘passwd:‘)
r = run(user,passwd) #给函数赋值
if r: #这里判断r值是True还是False
print(‘ok‘)
else:
print(‘on‘)
def run(u,p): #有参数函数
if u == ‘hlh‘ and p == ‘123‘: #判断是否成立,成立则返回True
return True
muth()

空函数:什么事都不做的函数就是一个空函数,通常该类函数是在写代码前做好代码的一个结构
def select(sql):
‘‘‘
查询功能
:param sql: 格式后的sql
:return: xxxx
‘‘‘
pass
def update():
pass


调用函数:
1、函数调用是以函数名字加括号来实现
2、在函数中执行到return时表示函数执行终止,不会再向下执行,并且将值返回函数
3、在如果函数中有多个,那么只有第一个是生效的
无return->None
return 1个值->返回1个值
return 逗号分隔多个值->元组

函数调用的三种形式
1 语句形式:foo()
2 表达式形式:3*len(‘hello‘)
3 当中另外一个函数的参数:range(len(‘hello‘))

实例1:
def foo():
return None
res=foo()
print(‘函数调用完毕‘,res,type(res))
#将foo()赋值给res,并且打印foo()函数的值,无return默认就是None,也就是说在这个函数中我把return去掉换个变量,那么测试最后返回的值同样是None

实例2:
def test():
return 123
print(3 * test())
#结果是369,这表示3 * 123

python基础5-函数

评论关闭