Python函数(上)
函数
引言:
函数就相当于提前定义的工具,在使用时可以直接调用工具使用
函数比较类似于循环的代码,都是重复调用一个功能性问题,主要区别如下
- 循环是相同的代码在相同的位置反复执行
- 函数是相同的代码在不同的位置反复调用
- 函数的语法结构
- 函数的定义与调用
- 函数的分类
- 函数的返回值
- 函数的参数
- 函数的语法结构
def def_name(): # 关键字,函数名,是否带参数
"""
打印123,这里主要是对函数功能的描述
"""
print(123) #函数代码体
return 456 # 返回值
1. def 关键字
def关键字就是用来定义函数的
2. 函数名
函数名就相当于我们使用的变量名需要见名知意
3. () 参数
函数参数主要是用于接受外部数据传入内部给括号里面的参数使用
1. 形参: 在函数定义阶段,函数的括号中写入的参数叫做形参
2. 实参: 在函数调用阶段,被调用的函数中写入的数据被称为实参
4. 函数注释
函数注释是用于描述这个函数的功能
5. 函数代码体
函数代码体是实现一个功能的具体代码
6. return 返回值
调用函数后返回给用户的返回值,可有可无需要看具体使用
- 函数的定义与调用
# 函数的定义
def print_def():
"""
这是一个打印123的功能
"""
print(123)
# 函数的调用,函数的调用直接使用函数名加括号调用
print_def()
"""
注意:
1. 函数在定义阶段python只会检查语法,并不会执行
2. 函数需要先定义再调用
"""
- 函数的分类
# 函数的三分类
1. 空函数
# 主要用于大型项目书写时占位使用,用来提醒程序员功能还没写完
定义:
def username():
pass
2. 无参函数
# 无参函数是不需要向函数没传递任何数据,执行结束就代表这个功能复用
def userinfo():
print('张老板', '刘老板')
userinfo() # 调用函数
张老板 刘老板 # 结果
"""
无参函数无需向参数内传递函数
"""
3. 有参函数
# 在函数定义阶段定义2个形参
def userinfo(user, pwd):
"""
打印用户传入的用户名和密码
"""
print(user, pwd)
userinfo('wesley', '123') # 传入对应的参数
wesley 123 # 结果
"""
有参函数需要再定义函数时,定义形参这个时候的形参不具备实际含义
在调用有参函数时需要传入对应的数据(实参),此时形参和实参绑定相当于变量和变量名之间的绑定关系
"""
- 函数的返回值
函数的返回值相当于返回给用户的数据值,返回值的关键字为return
- 获取返回值
- 变量名 赋值符号 函数名 # 可以打印出当前函数的返回值
- 函数中如果没有使用return来指定返回值,默认的返回值为Noen
- 函数中如果使用return,但没有指定返回值,默认返回值为Noen
- 函数中如果使用return,并指定了返回值,指定什么就返回什么
- 函数中如果使用return,并指定了多个返回值并且以逗号分隔,会以元组的方式返回
- 函数中执行函数体如果遇到return则函数执行结束
- 函数的参数
形式参数
在函数定义阶段括号内填写的参数 简称'形参'
实际参数
在函数调用阶段括号内填写的参数 简称'实参'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"""
形参与实参的关系
形参类似于变量名 在函数定义阶段可以随便写 最好见名知意
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)

浙公网安备 33010602011771号