混合传递
#--------------------5、混合传递-----------------------
#位置参数,默认参数,*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")
##错误调用1:缺少必要的关键字参数
#func("A","B","Math","Science")
##错误调用2:重复传参
#func("A",b="B",e="Math",b=16)
##错误调用3:位置参数在关键字参数之后
#func(a="A",b="B","Math","Science")
#------------------返回值-------------------
#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_id
c = add_student("DongWeiPing",18,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("--------------局部变量-------------")
# 1、函数内部定义的变量,内部能访问,外部不行
def test_one():
number = 10 # 局部变量
print(number) # 内部可以访问局部变量
test_one()
#print(number) #外部无法访问局部变量
#函数间的局部变量相互独立、互不影响
def test_two():
number = 20 # 和test_one的局部变量不一样
print(number)
test_two()
全局变量
#--------------------全局变量---------------------
print("----------------全局变量--------------")
# 1、全局变量可以在整个程序进行访问
number = 10
def test_one():
print(number) # 内部可以访问全局变量
test_one()
print(number)
全局变量在函数内部只能访问,不能修改
# 2、全局变量在函数内部只能访问,不能修改
number = number + 10
#def test_two():
# print(number)
# number = number + 1
test_two()
print(number)
学生管理系统
# ===============================学生管理系统================================
students = []
# 1、显示学生管理系统菜单
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)