函数基础
函数的定义
函数是一种思想。
在程序中,函数就是具备某一功能的功能,事先讲工具准备好就是函数的定义,遇到场景拿来就用就是函数的调用。
为何用函数
我们如果过不使用函数的话,写程序时将会遇到三个问题:
1.程序冗长
2.程序的扩展性差
3.程序的可读性差
如何使用函数
定义函数
先定义函数,后调用:
- 定义函数
def 函数名(param1,param2....):
"""
函数功能的描述信息
:param1 描述
:param2 描述
:return 返回值
code1
code2
code3
"""
return 返回值
-
调用函数
函数名(param1、param2...)
注册功能
def register():
# 注册功能
username = input('username').strip()
pwd = input('password').strip()
with open('38a.txt','a',encoding='utf8') as fa:
fa.write(f"{username}:{pwd}
")
fa.flush()
register()
# 复用
register()
register()
登录功能
def login():
inp_username = input('username:').strip()
inp_pwd = input('password:').strip()
with open('38.txt','rt',encoding='utf8') as fr:
for user_info in fr:
user_info = user_info.strip('
')
user_info_list = user_info.split(':')
if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
print('login succesdful')
break
else:
print('failed')
login()
函数定义阶段
def func():
bar() # 不属于语法错误,不会报错
print('*'*10)
只检测语法,不执行函数体代码
函数调用阶段
def bar():
print('from bar')
def foo():
print('from foo')
bar()
foo()
from foo
from bar
def foo():
print('from foo')
bar()
def bar():
print('from bar')
foo()
from foo
from bar
定义函数的三种形式
无参函数
定义函数时参数是函数体接受外部值的一种媒介,其实就是一个变量名
在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时午餐,意味着调用时也无需传入参数。
如果函数体代码逻辑不需要依赖外部传入的值,必须得定义无参函数。
def func():
print('hello world')
func() # hello world
有参函数
在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,以为着调用时也必须传入参数。
如果函数体代码逻辑需要依赖外部传入的值,必须得定义有参函数。
def sum_self (x,y):
res = x + y
print(res) # 3
sum_self(1,2)
空函数
当你只知道你需要实现某个功能,但还不知道该如何用代码实现时,就可以暂时写个空函数,然后先实现其他的功能。
def func():
pass
函数的返回值
什么是返回值
函数内部代码经过一些逻辑处理获得的结果。
def func():
name = 'shiqi'
return name
name = func()
print(name)
shiqi
为什么要有返回值
-
return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会执行。
-
return的返回值可以返回任意数据类型
-
return的返回值无个数限制,即可以使用使用逗号隔开返回多个值。
0个:返回None
1个:返回值是该值本身
多个:返回值是元组
def max_self(salary_x,salary_y): if salary_x > salary_y: return salary_x else: return salary_y max_salary = max_self(20000,30000) print(max_salary*12)
360000
返回多个值: def func(): name = 'shiqi' age = 17 hobby_list = ['sing','junm','rap','basketball'] return name,age,hobby_list name,age,hobby_list = func() print(f"i am {name},my age is{age},i like {hobby_list}")
i am shiqi,my age is17,i like ['sing', 'junm', 'rap', 'basketball']