温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

第10课 python 函数

发布时间:2020-07-08 05:56:39 来源:网络 阅读:279 作者:samly71 栏目:编程语言
今日有点晚,上午去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)
    -----------------是不是,觉得比之前好多了?是的,需求对新人来说应该不断去消化,对自己提要求。。。
              
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI