码迷,mamicode.com
首页 > 编程语言 > 详细

第10课 python 函数

时间:2019-08-08 23:03:58      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:注意   其他   作用   俄罗斯   --   进一步   要求   积累   lse   

今日有点晚,上午去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)
    -----------------是不是,觉得比之前好多了?是的,需求对新人来说应该不断去消化,对自己提要求。。。
              

第10课 python 函数

标签:注意   其他   作用   俄罗斯   --   进一步   要求   积累   lse   

原文地址:https://blog.51cto.com/323248/2427885

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!