def measure(): """测量温度和湿度""" print("测量开始:") temp = 39 wetness = 50 print("测量结束:") return temp, wetness # 元组 result = measure() print(result) # 需要单独的处理温度或湿度 # print(result[0]) # 注意:使用多个变量接收结果时,变量的个数应该和元组中的元素个数保持一致 gl_temp, gl_wetness = measure() print(gl_temp) print(gl_wetness)交换数字
a = 6 b = 100 # 1.法一:使用其他变量 # c = a # a = b # b = c # 2.法二:不使用其他变量 # a = a+b # b = a-b # a = a-b # 3.法三:python专有 # a, b = (b, a) a, b = b, a print(a) print(b)
只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用
def demo(num, num_list): print("函数内部的代码") num = 100 num_list = [1, 2, 3] print(num) print(num_list) print("函数执行完成") gl_num = 99 gl_list = [4, 5, 6] demo(gl_num, gl_list) print(gl_list) print(gl_num)
若传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部数据
def demo(num_list): print("函数内部的代码") num_list.append(9) print(num_list) print("函数执行完成") gl_list = [1, 2, 3] demo(gl_list) print(gl_list)+=
def demo(num, num_list): print("函数开始") num += num # 本质上是在调用列表的extend方法 # num_list = num_list + num_list 则不会改变全局变量 num_list += num_list print(num) print(num_list) print("函数完成") gl_num = 9 gl_list = [1, 2, 3] demo(gl_num, gl_list) print(gl_list) print(gl_num)函数的缺省
def print_info(name, title="", gender=True): """ :param title: 职位 :param name: 班上同学的姓名 :param gender: True 男生 False 女生 """ gender_text = "男生" if not gender: gender_text = "女生" print("[%s]%s是%s" % (title, name, gender_text)) print_info("小明", gender=True)多值参数
参数名前增加一个* 可以接收元组
参数名前增加两个** 可以接收字典
def demo(num, *nums, **person): print(num) print(nums) print(person) demo(1) demo(1, 2, 3, 4, 5, name="xiaoming", age=18) # 拆包语法 gl_nums = (1, 2, 3) gl_dict = {"name": "xiaoming", "age": 18} demo(1, *gl_nums, **gl_dict)
def sum_numbers(*args): num = 0 print(args) for n in args: num += n return num result = sum_numbers(1, 2, 3) print(result)函数的递归
一个函数内部调用自己
def sum_number(num): print(num) if num == 1: return sum_number(num - 1) sum_number(3)
def sum_numbers(num): # 1.出口 if num == 1: return 1 # 2.数字的累加 temp = sum_numbers(num - 1) return num+temp result = sum_numbers(3) print(result)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)