Python

43 阅读1分钟

混合传递

位置参数,默认参数。*args。关键字-only参数。**kwargs

仅关键字参数

定义优先级

def func(a,b=2,*args,c,**kwargs):
    print(a,b,args,c,kwargs)

image.png

错误调用1:缺少必要关键字参数

错误调用2:重复传参

错误调用3: 位置参数在关键字参数后

返回值

return 语句
def add_student(name, age, grade, student_id =None, students=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})")


add_student("xiaoming",25,25)
print(students)
print(c)

def move(x,y,step):
    nx = x + step
    ny = y - step
    return nx,ny

# 一个变量接收两个返回值
result = move(100,100,60)
print(result)
print("----------------两个变量接收一个返回值-----------------")
a,b, = move(100,100,60)
print(f"a={a},b={b}")

变量作用域

# 变量不能再程序任何位置进行访问
print("--------------变量作用域--------------")
# -----------------局部变量--------------------
# 1.函数内部定义变量,内部能访问,外部不行
def test_one():
    number = 10           #局部变量
    print(number)         #内部可以访问局部变量
test_one()
#print(number)            #外部无法访问局部变量
# 2.函数间的局部变量相互独立、互不影响
def test_two():
    number = 20
    print(number)
tese_two()

全局变量

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