第四课晓宁Python函数(下)笔记

#Python人工智能基础篇-第四课笔记 ## 函数(下) ###1.局部变量 * 函数内部定义函数 * 不同函数内的局部变量可以定义相同的名字,互不影响 * 作用范围:函数体内有效,其他函数不能直接使用 ####1.1 局部变量实例 #局部变量 def set_name(): name = "zhangsan" return name def get_name(name): name = "lisi" //此处不修改name值,应该打印zhangsan print(name) nm = set_name() get_name(nm) //输出结果“lisi” ###2.全局变量 * 函数外部定义的变量 * 作用范围:可以再不同函数中使用 * 在函数内使用global关键字实现修改全局变量的值 * 全局变量命名建议以g_开头,如g_game ####2.1全局变量实例 name = "zhangsan" def get_name(): print(name) def get_name2(): print(name) get_name() //输出zhangsan get_name2() //输出zhangsan print(name) //输出zhangsan ####2.2在函数内使用global关键字 age = 20 def change_age(): global age age = 25 print("函数体内age=%d"%age)//输出函数体内age=25 change_age() print("函数体外age=%d"%age) //输出函数体外age=25 ###3、函数参数 ####3.1缺省参数 * 函数定义带有初始值的形参 * 函数调用时,缺省参数可传,也可不穿 * 缺省参数一定要位于参数列表的最后 * 缺省参数数量没有限制 #####3.1.1 缺省函数实例 #缺省参数 def x_y_sum(x,y=20): print("x=%d"%x) print("y=%d"%y) return x + y sum1 = x_y_sum(10) print(sum1) //输出结果x=10,y=20 30 sum2 = x_y_sum(10,30) print(sum2) //输出结果x=10,y=30 40 ####3.2命名参数 * 调用带有参数的函数时,通过指定参数名称传入参数的值 * 可以不按函数定义的参数顺序传入 #####3.2.1 命名函数实例 def x_y_sum(x=10,y=20): return x + y #注意:函数调用的时候命名参数的名称与函数定义时的形参名称相同,但是顺序可以不同 rs1 = x_y_sum(y=30,x=15) rs2 = x_y_sum(x=15) rs3 = x_y_sum() print("rs1=%d"%rs1) //输出结果rs1=45 print("rs2=%d"%rs2) //输出结果rs2=35 ####3.3不定长参数 * 函数可以接受不定个数的参数传入 * def function([formal_args,]*args)函数调用时,传入的不定参数会被封装成元组 * def function([formal_args,]**args)函数调用时,如果传入key = value的形式的不定长参数,会被封装成字典 ####3.3.1 第一种定义实例 #def fuction([formal_args,]*args) #改变不定长参数的位置 def any_num_sum2(x,*args,y=10): print("args={}".format(args)) print("x={}".format(x)) print("y={}".format(y)) rs = x + y if len(args) > 0: for arg in args: rs += arg return rs rs1 = any_num_sum2(20) rs2 = any_num_sum2(20,30,y=100) rs3 = any_num_sum2(20,30,40,50,60,y=100) print(rs1) //输出结果 args={},x=20,y=10 rs1=30 print(rs2) //输出结果 args=(30,) x=20 y=100 rs2=150 print(rs3) //输出结果 args=(30, 40, 50, 60) x=20 y=100 rs3=300 ###4递归函数 * 函数调用自身 * 注意:递归过程中要有用于结束递归的判断 ####4.1 递归函数实例 def recursive_for(num): rs = num for i in range(1,num):# (1,4) = [1,2,3) rs *= i return rs result = recursive_for(4) print(result) //输出结果24

0 个评论

要回复文章请先登录注册