Python 11.28

47 阅读2分钟
# --------------------混合传递-------------------
# 位置参数,默认参数, *arge, 关键字-only参数, **kwargs
# 仅关键字参数
# 定义优先级
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","B","Math","Science")

# --------------------返回值-----------------------
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 students


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("-----局部变量------")
# 1. 函数内部定义的变量,内部能访问,外部不行
def test_one():
    number = 10       # 局部变量
    print(number)     # 内部可以访问局部变量
test_one()
#print(number)        #外部无法访问局部变量
# 2.函数间的局部变量相互独立
def test_two():
    number = 20       # 和test_one的局部变量不一样
    print(number)
test_two()

#---------------全局变量--------------
print("---------全局变量--------")
# 1全局变量可以再整个程序进行访问
def test_one():
    number = 10
    print(number)    # 内部可以访问局部变量
test_one()
print(number)

# 2. 全局变量在函数内部只能访问,不能修改
number = number + 10
# def test_two():
#     print(number)
#     number = number + 1
test_two()
print(number)