第10课 python 函数

今日有点晚,上午去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)
    -----------------是否是,以为比以前好多了?是的,需求对新人来讲应该不断去消化,对本身提要求。。。
              
相关文章
相关标签/搜索