函数入门

函数基础

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。

函数相当于是工具(具有一定功能)
    不用函数
        修理工需要修理器件要用锤子 原地打造 每次用完就扔掉 下次用继续原地打造
    用函数
        修理工提前准备好工具 什么时候想用就直接拿出来使用

函数的语法结构

image
image

函数的定义和调用

image

1.函数在定义阶段只检测语法 不执行代码
	def func():
		pass
2.函数在调用阶段才会执行函数体代码
	func()

函数的分类

image

1.空函数
	函数体代码为空 使用的pass或者...补全的
 	空函数主要用于项目前期的功能框架搭建
 	 def register():
        """注册功能"""
        pass
2.无参函数
	 定义函数的时候括号内没有参数
	 def index():
        print('hello')
3.有参函数
	定义函数的时候括号内写参数 调用函数的时候括号传参数
 	def func(a):
    	  print(a)

函数的返回值

image

def func():
    pass
    return 'hello'
    print('no')  # 这里的代码不会执行!

res = func()  # 获取返回值 没有return关键字时会获取到None
print(res)  # hello

函数的参数

image

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
posted @ 2022-10-09 18:11  passion2021  阅读(152)  评论(0编辑  收藏  举报