python

19 阅读2分钟

image.png 混合传递

#--------------------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)