Python函数(上)

函数

引言:

函数就相当于提前定义的工具,在使用时可以直接调用工具使用
函数比较类似于循环的代码,都是重复调用一个功能性问题,主要区别如下

  1. 循环是相同的代码在相同的位置反复执行
  2. 函数是相同的代码在不同的位置反复调用
  • 函数的语法结构
  • 函数的定义与调用
  • 函数的分类
  • 函数的返回值
  • 函数的参数
  1. 函数的语法结构
def def_name():  # 关键字,函数名,是否带参数
    """
    打印123,这里主要是对函数功能的描述
    """
    print(123)  #函数代码体
    
    return 456  # 返回值

1. def 关键字
def关键字就是用来定义函数的

2. 函数名
函数名就相当于我们使用的变量名需要见名知意

3. () 参数
函数参数主要是用于接受外部数据传入内部给括号里面的参数使用
    1. 形参: 在函数定义阶段,函数的括号中写入的参数叫做形参
    2. 实参: 在函数调用阶段,被调用的函数中写入的数据被称为实参

4. 函数注释
函数注释是用于描述这个函数的功能

5. 函数代码体
函数代码体是实现一个功能的具体代码

6. return 返回值
调用函数后返回给用户的返回值,可有可无需要看具体使用
  1. 函数的定义与调用
# 函数的定义
def print_def():
    """
    这是一个打印123的功能
    """
    print(123)
    
 # 函数的调用,函数的调用直接使用函数名加括号调用
print_def()

"""
注意:
1. 函数在定义阶段python只会检查语法,并不会执行
2. 函数需要先定义再调用
"""
  1. 函数的分类
# 函数的三分类

1. 空函数
# 主要用于大型项目书写时占位使用,用来提醒程序员功能还没写完
定义:
def username():
    pass


2. 无参函数
# 无参函数是不需要向函数没传递任何数据,执行结束就代表这个功能复用
def userinfo():
    print('张老板', '刘老板')
userinfo()  # 调用函数
张老板 刘老板  # 结果
"""
无参函数无需向参数内传递函数
"""

3. 有参函数
# 在函数定义阶段定义2个形参
def userinfo(user, pwd):
    """
    打印用户传入的用户名和密码
    """
    print(user, pwd)

userinfo('wesley', '123')  # 传入对应的参数
wesley 123  # 结果

"""
有参函数需要再定义函数时,定义形参这个时候的形参不具备实际含义
在调用有参函数时需要传入对应的数据(实参),此时形参和实参绑定相当于变量和变量名之间的绑定关系
"""

  1. 函数的返回值
    函数的返回值相当于返回给用户的数据值,返回值的关键字为return
  • 获取返回值
    • 变量名 赋值符号 函数名 # 可以打印出当前函数的返回值
  • 函数中如果没有使用return来指定返回值,默认的返回值为Noen
  • 函数中如果使用return,但没有指定返回值,默认返回值为Noen
  • 函数中如果使用return,并指定了返回值,指定什么就返回什么
  • 函数中如果使用return,并指定了多个返回值并且以逗号分隔,会以元组的方式返回
  • 函数中执行函数体如果遇到return则函数执行结束
  1. 函数的参数
形式参数
	在函数定义阶段括号内填写的参数 简称'形参'
实际参数
	在函数调用阶段括号内填写的参数 简称'实参'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"""
形参与实参的关系
	形参类似于变量名 在函数定义阶段可以随便写 最好见名知意
	def register(name,pwd):
		pass
	
	实参类似于数据值 在函数调用阶段与形参临时绑定 函数运行结束立刻断开
	register('jason',123)   形参name与jason绑定 形参pwd与123绑定
"""
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • 练习题
    用户管理系统
# 存放用户数据
user_data_dict = {}

# 用户注册数据存放
def p_login_info(emp_id, username, age, job, salary):
    """
    将用户传入的员工数据写入user_data_dict大字典中
    """
    user_dict = {}
    # 写入用户字典后直接写入大字典
    user_dict['emp_id'] = emp_id
    user_dict['username'] = username
    user_dict['age'] = age
    user_dict['job'] = job
    user_dict['salary'] = salary
    user_data_dict[emp_id] = user_dict

# 将用户需要注册的信息通过p_login_info写入大字典中
# p_login_info(emp_id, username, age, job, salary)

# 2.查看单个员工信息,并格式化输出
def look_alone_user_info(emp_id):
    """
    通过传入的emp_id,查询用户的信息
    :param emp_id:
    :return:
    """
    user_dict = user_data_dict.get(emp_id)
    print(f'''
    ------------user info---------------
    编号:{user_dict.get('emp_id')}
    姓名:{user_dict.get('username')}
    年龄:{user_dict.get('age')}
    岗位:{user_dict.get('job')}
    薪资:{user_dict.get('salary')}
    ------------------------------------
    ''')
# look_alone_user_info(emp_id)

# 3.查看所有员工信息
def look_all_user_info():
    """
    直接查询并答应所有用户的信息
    :return:
    """
    for user_dict in user_data_dict.values():
        print(f'''
    ------------user info---------------
    编号:{user_dict.get('emp_id')}
    姓名:{user_dict.get('username')}
    年龄:{user_dict.get('age')}
    岗位:{user_dict.get('job')}
    薪资:{user_dict.get('salary')}
    ------------------------------------
        ''')
# look_all_user_info()

# 4.修改员工薪资
def update_user_salary(emp_id, salary):
    emp_id = input('请输入需要修改的员工编号(q退出): ').strip()
    if emp_id == 'q':
        return
    salary = input('请输入调整后的薪资: ').strip()

    """
    通过员工编号修改员工的薪资
    :param emp_id:
    :return:
    """
    # 获取需要修改的信息
    user_dict = user_data_dict[emp_id]
    # 对用户信息进行修改
    user_dict['salary'] = salary
    # 将员工信息写更新至大字典
    user_data_dict[emp_id] = user_dict
# update_user_salary(emp_id, salary)

# 5.删除员工信息
def del_user_info(emp_id):
    """
    根据编号删除用户
    :param emp_id:
    :return:
    """
    emp_id = input('请输入需要删除的员工编号(q退出): ')
    if emp_id == 'q':
        return
    user_data_dict.pop(emp_id)
    if emp_id not in user_data_dict:
        print(f'删除编号为{emp_id}的员工成功')
# del_user_info(emp_id)


while True:
    print("""
    1.创建员工信息
    2.查看单个员工信息
    3.查看所有员工信息
    4.修改员工薪资
    5.删除员工信息
    """)
    choice = input('请输入功能指令>>>: ').strip()
    if choice == '1':
        while True:
            # 获取用户输入的用户信息
            emp_id = input('请输入员工编号(q退出): ').strip()
            if emp_id == 'q':
                break
            username = input('请输入员工姓名: ').strip()
            age = input('请输入员工年纪: ').strip()
            job = input('请输入员工岗位:').strip()
            salary = input('请输入员工薪资: ').strip()
            p_login_info(emp_id, username, age, job, salary)
    elif choice == '2':
        while True:
            emp_id = input('请输入需要查询的员工编号(q退出): ').strip()
            if emp_id == 'q':
                continue
        look_alone_user_info(emp_id)

    elif choice == '3':
        look_all_user_info()
    elif choice == '4':
        update_user_salary(emp_id, salary)
    elif choice == '5':
        del_user_info(emp_id)

posted @ 2025-03-13 13:38  樵夫-  阅读(14)  评论(0)    收藏  举报