# 函数的定义
def firstFun():
print("----------------------")
print("剑来")
print("----------------------")
# 函数的嵌套
def secondFun():
print("**********************")
firstFun()
print("**********************")
# 定义时 a b为形参
def test(a, b):
return a + b
# 函数的调用
firstFun()
secondFun()
# 调用时 1 2 为实参
print(test(1, 2))
print("---------------------------------------------------")
# 一个函数返回多个数据 默认返回元组
def returnMoreDatas():
return 1, 2
print(returnMoreDatas())
# 也可以返回列表或者字典
def returnMoreNames():
return ["张学友", "刘德华"]
def returnDirctory():
return {"name": "张学友", "age": 16}
print(returnMoreNames())
print(returnDirctory())
print("---------------------------------------------------")
# 缺省参数 调用函数时,缺省参数的值如果没有传入,则取默认值。
def printinfo(name, age=35):
# 打印任何传入的字符串
print("name: %s" % name)
print("age %d" % age)
# 调用printinfo函数
printinfo(name="miki") # 在函数执行过程中 age去默认值35
printinfo(age=9, name="miki")
# 不定长参数 语法如下:
# def functionname([formal_args,] *args, **kwargs):
# """函数_文档字符串"""
# function_suite
# return [expression]
def fun(a, b, *args, **kwargs):
print("a =%d" % a)
print("b =%d" % b)
print("args:")
print(args)
print("kwargs: ")
for key, value in kwargs.items():
print("key=%s" % value)
# 缺省参数在*args后面 **kwargs之前
def sum_nums_3(a, *args, b=22, c=33, **kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs)
# 拆包 对返回的数据直接拆包
# 需要拆的数据的个数要与变量的个数相同,否则程序会异常
# 除了对元组拆包之外,还可以对列表、字典等拆包
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
# 引用 在python中,值是靠引用来传递来的。
a = [1, 2]
b = a
a.append(3)
print(b) # [1,2,3]
# 用id()来判断变量的引用地址是否相同
print(id(a))
print(id(b))
print("*********************")