函数基础(1)

函数(一)

1、为什么要有函数?什么是函数?
当程序有很多需求时,代码数量就会变得很大会造成以下问题:
1、组织结构不清晰,可读性差
2、代码冗余
3、管理维护的难度极大,扩展性差

函数就在程序中具备某一个功能的工具,
函数的定义就是事先准备工具的过程,
函数的调用就是把程序中准备好的功能模块拿来使用。
重要:
所以函数的使用必须遵循:先定义,再调用。

2、语法

def 函数名(参数1,参数2,...): #def:定义函数的关键字函数名:是用来调用函数的,
函数名的命名必须能反映出函数的基本功能(命名规则基本等同于变量名)。
"""
文档描述 # 文档描述:推荐写上,来增强函数的可读性
"""
代码1 # 代码块:函数的功能实现代码
代码2
代码3
return 值 # return:函数的返回值
2.1 定义阶段

print('========================')
print('hello egon')
print('========================')
如实现上面的功能可按照如下定义并可实现多次使用符号长度自定义
def print_sym(sym,count):
print(sym*count)
print('hello egon')
print(sym*count)

print_sym('=','15')

2.2 调用阶段:函数名加括号就是在调用函数
括号内是需要同步传入的参数
print(print_sym)
print_sym('#',30)
print_msg('hello egon')
print_sym('#',30)


3. 定义函数的三种类型:
3.1 有参函数:参数是函数体代码用来接收外部传入值的
def max2(x,y): #x=100,=y101
# x=10
# y=3
if x > y:
print(x)
else:
print(y)

max2(100,101)

2.2 无参函数:当函数体的代码逻辑不需要函数的调用者掺入值的情况下,就无参
def func():
print('----------------------')
print('---soft run-----------')
print('----------------------')

func()

def interactive():
name=input('username>>: ').strip()
pwd=input('password>>: ').strip()
print(name,pwd)

interactive() # 定义时无参,意味着调用时也无须传入参数

练习:
uname_of_db='egon'
pwd_of_db='123'

def interactive():
uname_of_inp=input('username>>: ').strip()
pwd_of_inp=input('password>>: ').strip()
return uname_of_inp,pwd_of_inp

def auth(uname,pwd):
if uname == uname_of_db and pwd == pwd_of_db:
print('登陆成功')
else:
print('登陆失败')

# 建议函数的定义尽可能只实现简单功能小模块,不要复杂,以便于维护和修改。

3.3 空函数:函数体为pass
def auth():
"""
这是一个认证功能
:return:
"""
pass

def put():
"""
上传功能
:return:
"""
pass

def get():
"""
下在功能
:return:
"""
pass
函数体为空主要目的是先占用位置搭出程序框架,以方便程序编制。(也可使用于程序某个功能卡壳了,先跳过;写后续程序节约时间)

注意: 函数的使用必须遵循:先定义,后调用的原则,
没事先定义函数而直接调用,就相当于在引用一个不存在的变量名。
定义阶段:函数在定义阶段只检测语法,不执行函数体代码。(如果函数只有语法错误程序会报错,定义或赋值错误不运行不报错)

4. 函数的调用
调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码
函数名加括号即调用函数
def bar():
print('from bar')

def foo():
print('from foo')
bar()

foo()

调用函数的三种形式
1、直接调用
def func():
print('from func')

func()

2、 赋值调用
1. def max2(x,y):
if x > y:
return x
else:
return y

res=max2(10,3)
print(res)

2. def max2(x,y):
if x > y:
return x
else:
return y

res=max2(10,3)*100
print(res)

4、当做另一个函数的引入值

res=max2(max2(10,3),11)
print(res)
原文地址:https://www.cnblogs.com/zhaodafa/p/8651587.html