今日有点晚,上午去hilston开会 广东省科学院&白俄罗斯科学院所长会议。。。学习了一个上午,简直收获良多。。下午又多问题处理。。。。网站又聚餐。。只能回来加加班处理一下今日的内容了(不坚持,又被遗忘了),仍是要坚持一下学习Python,否则真是忘记忘记再忘记,以后就不搞了。。。 今日咱们说函数: 1. 函数 从小学-初中常常说的x = y+1 ,x,y都是有因果关系的,咱们叫函数。今日咱们在编程说的函数有区别的。他是一个代码的报装,固然也有因果关系。你执行/调用有相关的结果。例如: def abc(): print("帅哥") ### def 是 define的缩写,定义函数必须有的开头; ### abc 是函数名字。。。方便调用。。。。其实能够这里理解 变量= xxxx ;同理 abc = 代码;abc也是一个变量名字/函数名字。。。。 ### print("帅哥") 是代码---叫函数体(能够有N行) ### () 用来干啥的?有参数 你能够放。。没有你能够不放。。。 格式: def 函数名(参数): 函数体 就这样的格式。。。。。。咱们说一下 参数。。。(可是不建议你们死机,只要知道位置参数就能够了) def abc(a,b,c): print(a) print(b) print(c) ####这里要说一下 调用 abc(1,2,3) 这样个就是调用 def abc(a,b,c) ##a,b,c 叫位置参数 abc(1,2,3,) ##1,2,3 叫实参 参数还分:位置参数,默认参数,不定长参数。。。是否是有点蒙?仍是记得一种就能够了。。其余跟进本身积累慢慢来就能够了。 不过咱们仍是要说一下: 1. 默认参数: def abc(a,b,c=5) print(a) print(b) print(c) abc(1,3) ##输出 1,3,5 ###为何不用3个实参,就能够输出5? 这就是默认参数的做用,注意:位置参数是固定的a,b 就是1,3 不可能 a=3,b=1 位置参数是死的。。 2. 不定长参数. def abc(*args): print(args) abc(1,3,4,5) ###输出是 元组 tuple....如何抽取? def abc(*args): #print(args) for i in args: print(i) abc(1,3,4,5) ####看看区别,是否是一个个显示的。。。 因此通常人,咱们不用*args,可是有时候迫于项目变化,预计到未知,仍是能够这样处理一下。。。 不长参数,还有一个就是 **kargs ;跟*args 有什么区别,多一个*k def abc(**kargs): print(kargs) abc(a=1,b=2,c=3) ###你会发现他是一个字典。。。因此若是不知道将来发展用多少个参数,可是又要为他作准备,开了一下字典这种吧,跟默认参数是否是有点像。。。。这样直接在函数体作 添加吗。。。。 ###################################################################################### 函数中的 return 仍是要说一下。。。 有些函数是不会有 return ,由于它不会 对返回值有处理,有想法。这里咱们要说明一下,你不添加(默认 return是 None), 通常函数体执行完毕,若是你有对返回值有进一步处理,你就会定义,后面编码时候有关联。是否是很抽象? 举例: def abc(a,b): if a>b: print("a>b") elif a<b: print("a<b") else: return 0 a=abc(1,1) if a = 0: print("samly71很是帅") else: print("ugy") ---------------------是否是不少判断?复习一下吧,可是咱们这里只要看 else : return 0 ,而后 samly71很是帅.... return 终止了函数的运行了,返回 0 到函数调用,a=0 了,而后你作一次判断,我这里例子很是简单,往后你的项目用来就不简单了。。。 ####################################################################################### 局部做用域; 所有做用域; def abc(): a= xxxx ##########a就是局部 做用域,他是没法被外部 print(a)的。。。。 若是你是 a=xxxx def abc(): print(a) print(a) ##############a被print 2次。。。。 有些前辈会告诉你,若是你在第1个状况,还想被外部调用 golbal a=xxxx 也是能够的,可是合理会有很对风险,通常我做为新人,基本不用。。。仍是老实一点好。。。。 ################################################# 函数嵌套: def a(): print("帅气")
def b():
Print("是的,很是好")
a()编程
b() ##回车后。。。 “是的,很是好” “帅气” ---------------为何是这个顺序? 1. 在b() 调用前,上面的都只是放在内存,没有执行; 2. 在b 调用了 a 这时候才执行a的内容,因此他在后面。。。。 +++++++++++++++++++++++++++++++++++++++++++ 是否是内容多了一点,可是很是简单,由于咱们用最简单的例子,来搞掂你的疑惑,内容不用多,也不用难。 关键仍是知道这函数什么,而后 函数就是用来 精简你的 代码的,重复的内容,就尝试去定义 函数吧。。。。例如 print("samly71帅气“) ##打印1000次。。。。你牛逼了 print print print ----------------1000次,回头第1个炒你。。。 也许你想到 for i in range(1,1001): print("samly71帅气“) -----------------确实有进步,可是若是 5000次呢?还有若是是你呢? number = input("打印的次数: ") content = input("输出的内容: ") def print_content(number,content): number = int(number) ##py2 python3 对input的类型是不同的。。 for i in range(1,number+1): print(content) print(number,content) -----------------是否是,以为比以前好多了?是的,需求对新人来讲应该不断去消化,对本身提要求。。。