函数入门
函数基础
计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。
函数相当于是工具(具有一定功能)
不用函数
修理工需要修理器件要用锤子 原地打造 每次用完就扔掉 下次用继续原地打造
用函数
修理工提前准备好工具 什么时候想用就直接拿出来使用
函数的语法结构
函数的定义和调用
1.函数在定义阶段只检测语法 不执行代码
def func():
pass
2.函数在调用阶段才会执行函数体代码
func()
函数的分类
1.空函数
函数体代码为空 使用的pass或者...补全的
空函数主要用于项目前期的功能框架搭建
def register():
"""注册功能"""
pass
2.无参函数
定义函数的时候括号内没有参数
def index():
print('hello')
3.有参函数
定义函数的时候括号内写参数 调用函数的时候括号传参数
def func(a):
print(a)
函数的返回值
def func():
pass
return 'hello'
print('no') # 这里的代码不会执行!
res = func() # 获取返回值 没有return关键字时会获取到None
print(res) # hello
函数的参数
def func(a):
print(a)
func() # 不给参数会报错! # TypeError: func() missing 1 required positional argument: 'a'
func('hello') # hello
练习:员工管理系统
# 员工管理系统
# 文件注册登录
def sysm_init():
'''初始化创建一个文件保存信息'''
with open(r'userinfo.txt', 'a', encoding='utf8') as f:
pass
def user_register():
'''员工注册'''
username = input('请输入员工名字:')
password = input('请输入密码')
with open('userinfo.txt','r',encoding='utf8') as f:
for line in f:
data_swap = line.split(':')
if username == data_swap[0]:
print('用户已经存在,无需注册')
break
else:
with open('userinfo.txt','a',encoding='utf8') as f_save:
f_save.write(f'{username}:{password}\n') # 这个换行符很重要 一定要写
print(f'{username},注册成功 = =')
def user_login():
'''员工登录'''
username = input('请输入员工名字:')
password = input('请输入密码')
loginOK = False
with open(r'userinfo.txt','r',encoding='utf8') as f:
for line in f:
data_swap = line.split(':')
if username == data_swap[0] and password == data_swap[1].strip('\n'):
loginOK = True
print(f'{username},登录成功=。=!')
break
else:
loginOK = False
print('登录失败 = =')
return loginOK
def logined_index():
'''登录之后的界面'''
user_choose = input('''
———————欢迎欢迎————————
输入1 查看所有员工
输入2 执行删除指定员工
输入q 退出登录
————————————————————-
请输入>>>:''')
return user_choose
def see_user():
print('---------员工名单-------------')
with open('userinfo.txt','r',encoding='utf8') as f:
for line in f:
data_swap = line.split(':')
if data_swap[0] == '' or data_swap[0] == '\n':
continue
else:
print(data_swap[0],end=' ')
print('\n------------------------------')
def delete_user():
username_delete = input('请输入你要删除的用户:')
user_exist = False
with open('userinfo.txt','r',encoding='utf8') as f_exi:
for line in f_exi:
data_swap = line.split(':')
if username_delete == data_swap[0]:
user_exist = True
break
else:
print('这个用户不存在')
if user_exist:
with open(r'userinfo.txt', 'r', encoding='utf8') as f_red:
data999 = f_red.read()
with open(r'userinfo.txt', 'w', encoding='utf8') as f_rep:
f_rep.write(data999.replace(f'{username_delete}', ''))
print('删除成功=。=')
else:
pass
if __name__ == '__main__':
while True:
sysm_init()
user_choose = input('''
————————————————————
输入1 执行员工注册
输入2 执行员工登录
输入q 退出
————————————————————-
请输入>>>:
''').strip()
if user_choose == '1':
user_register()
elif user_choose == '2':
res = user_login()
if res:
while True:
logined_user_choose = logined_index()
if logined_user_choose == 'q':
break
elif logined_user_choose == '1':
see_user()
elif logined_user_choose == '2':
delete_user()
else:
pass
else:
pass
elif user_choose.lower() == 'q':
break
else:
pass