函数

    科技2022-08-28  99

    祖宗

    def sum_2_num(num1, num2): result = num1 + num2 return result sum_result = sum_2_num(10, 20) print("计算结果:%d" % sum_result)

    传参,数据地址一起

    def test(num): print("在函数内部 %d 对应的内存地址是 %d" % (num, id(num))) result = "hello" print("函数要返回数据的内存地址是 %d" % id(result)) return result a = 10 # 数据的地址本质上就是一个数字 print("a 变量保存数据的内存地址是 %d" % id(a)) r = test(a) print("%s 的内存地址是 %d" % (r, id(r)))

    局部变量

    def demo1(): num = 10 print("在demo1函数内部的变量是 %d" % num) def demo2(): num = 99 print("demo2 ==> %d" % num) pass # 在函数内部定义的变量,不能在其他位置使用 # print("%d" % num) demo1() demo2()

    全局变量

    num = 10 def demo1(): # 在 python 中,是不允许直接修改全局变量的值 global num num = 99 print("demo1 ==> %d" % num) def demo2(): print("demo2 ==> %d" % num) demo1() demo2()

    元组接受

    def measure(): temp = 39 wetness = 50 return temp, wetness result = measure() print(result) print(result[0]) print(result[1]) gl_temp, gl_wetness = measure() print(gl_temp) print(gl_wetness)

    总结

    把地址传给形参,函数内再赋值,不是修改数据,是修改了指针

    def demo(num, num_list): print("函数内部的代码") # 在函数内部,针对参数使用赋值语句,不会修改到外部的实参变量 num = 99 num_list = [1, 2, 3] print(id(num)) print(num_list) print("函数执行完成") gl_num = 99 gl_list = [4, 5, 6] demo(gl_num, gl_list) print(id(gl_num)) print(gl_list)

    缺参数

    def print_info(name, title="", gender=True): gender_text = "男生" if not gender: gender_text = "女生" print("[%s]%s 是 %s" % (title, name, gender_text)) print_info("小明") print_info("老王") print_info("小美", gender=False)

    多值

    def demo(arg,*args, **kwargs): print(arg) print(args) print(kwargs) gl_num=0 gl_nums = (1, 2, 3) gl_dict = {"name": "小明", "age": 18} # 拆包语法,简化元组变量/字典变量的传递 demo(gl_num,*gl_nums, **gl_dict) demo(0,1, 2, 3, name="小明", age=18)
    Processed: 0.012, SQL: 9