混合传递😸
- 位置参数,默认参数,*args,关键字-only参数,**kwargs
- 仅关键字参数
- 定义优先级
print("-----混合传递-----")
def func(a,b=2,*args,c,**kwargs):
print(a,b,args,c,kwargs)
func("A","B","Math","Science",c="C",city="Hubei")
返回值😽
- return语句会在函数结束时将数据返回给程序
- 一个变量接收两个返回值
print("---------------返回值---------------")
students = []
def add_student(name, age, grade, student_id =None):
if student_id is None:
student_id = len(students) + 1001
student = {
"name":name,
"age":age,
"grade":grade,
"id":student_id
}
students.append(student)
print(f"成功添加学生:{name}(id:{student_id})")
return student
c = add_student("FanXianLian",25,25)
print(students)
print(c)
def move(x,y,step):
nx = x + step
ny = y - step
return nx, ny
print("----一个变量接收两个返回值------")
result =move(100,100,60)
print(result)
print("------两个变量接收两个返回值------")
a,b = move(100,100,60)
print(f"a={a},b={b}")
变量作用域😼
- 变量不能在程序任何位置进行访问
- 函数内部定义的变量,内部能访问,外部不行
- 函数间的局部变量相互独立、互不影响
print("----------变量作用域----------")
print("------局部变量------")
def test_one():
number = 10
print(number)
test_one()
def test_two():
number = 20
print(number)
test_two()
全局变量
- 全局变量可以在整个程序进行访问
- 该全局变量在函数内部只能访问,不能修改
print("-----全局变量-----")
number = 10
def test_one():
print(number)
test_one()
print(number)
number = number + 10
test_two()
print(number)
学生管理系统🙀
students = []
def show_menu():
"""显示学生管理系统菜单"""
print("--------------------------------------")
print("|1. 添加学生信息")
print("|2. 查询学生信息")
print("|3. 查询学生总数")
print("|4. 退出系统")
print("--------------------------------------")
def add_student(name, age, grade, student_id =None):
if student_id is None:
student_id = len(students) + 1001
student = {
"name":name,
"age":age,
"grade":grade,
"id":student_id
}
students.append(student)
print(f"成功添加学生:{name}(id:{student_id})")
def find_student(student_id):
for student in students:
if student["id"] == student_id:
return student
return None
def count_student():
"""返回学生总数"""
return len(students)