zoukankan      html  css  js  c++  java
  • 随堂笔记16day

    复习

      1.作用域

      2.return可返回任何值(包含函数,意思是返回值可以返回函数)

    没有return返回None例子:

      def test1():

        print('in the test1)--------------------- (2)

      def test():

        print('in the test)-------------------------(1)

        return test1

    res = test()

    print(res())------------------------------------------(3)

    ************************************************

    result:

    in the test ————(1)

    in the test1————(2)

    None------------------------------因为test1没有return值(3)

    函数名称(test)-------内存地址

    函数名+( )括号-------运行这个函数

    注意事项:

      不可以一步进入子程序,要一层层运行才能进入子程序。

    匿名函数

      lambda x :x+1

    其中:x是形参,x+1是返回值(表达式)

    要获得函数的运行结果:     函数结果要赋给一个变量保存值。

    fun = lambda x : x+1

    print(fun(10))

    匿名函数就是没有名字的函数,没有名字运行完就会马上会被内存回收。

    lambda函数通常会与其他函数一起用(def),不会单独存在,

    如果单独存在,python解释完了之后就会马上被内存回收。

    匿名函数不应该存在复杂的逻辑运算:

      lambda x :if x > 1...等等

            x:后面应该是一个明确的返回值

    可以是 lambda x : startswith(N)

            这样可以,返回值是True和False

    lambda的冒号后面一定是最终返回结果

    lambda x,y,z:(x+1, y+1, z+1)--------------可以多个值运算格式

    编程方法论(流派)

      1.面向过程

      2.函数体

      3.面向对象

    要形成自己的风格

      面向过程:将大的问题分解成几个小的问题

      函数就是编程(最早)

        函数式 = 编程语言定义的函数 + 数学意义的函数

        1.不可变,不用变量保存状态,不修改变量

        2.第一类对象,函数即“变量”

        3.尾调用

    把函数当作参数传给另一个参数

    def foo(n):

      print(n)

    def bar(name):

      print('my name is %s" %name)

    foo(bar ('wwe'))

    ***********************************

    result:

    my name is wwe

    None -------------------------因为bar没有return,所以返回值为None

    注意-------------最后一步 <>最后一行

    高阶函数定义(满足其中一项即可)

    1.把函数当作参数传给另一个函数 | 函数接受的参数是一个函数名称

    2.返回值中包含函数

    ---------------------------------------------------------------------------------------------------------------

    map函数

    array==参数

    func==函数运算

    def map_test(func, array):

      ret [ ] -------------------这个是表示空的列表,用来接收作用

      for i in num_1:

        res = func( i )    *****

        ret.append(res) ***********add_one(i)写死逻辑,这个例子应该是为了表达出,逻辑被写死,不够灵活,扩张性不好

      return ret                   ****

    print(map_test (add_one,num_1) )---------可以写成--------print(map_test ( lanbda x : x+1,num_1)   匿名函数是用于简单逻辑(不能太复杂和不能没有明确的返回值)

    其中:

      map_test() 是函数逻辑

      add_one   是要求

      num_1   是参数

    map函数是个迭代器,只能迭代一次-----------?为什么,忘记怎么理解了

      map ( lambda x : x+1, num_1)

      其中  lambda x : x+1    是处理方法------------如果是逻辑很精简的用lambda,如果逻辑太复杂则要用自己定义的函数

        num_1     是参数-----------进行for循环赋值给map

    print(传的是有名函数,list(map(reduce_one, num_1) ) )

    函数是编程,缺点是易读性差,优点是精简。

    *****  filter函数   ******

    def filter_test (array):  ——————其中array不要写成movice_people; 因为会修改到movice_people这个全局变量

      ret [ ]

      for p in array:

        if not p.startswith(' sb' ):

          ret.append(p)

      return ret

    res = print (filter_test(movic_people) )  ------------这里调用movice_people 不会修改全局变量。

    res的作用是保存,要保存就赋值给一个变量,类似挂门牌

    注意:

    print ( a =filter_test(movice_people) )   ---------这样是打印的是a赋值的过程

    print(filter (lambda n :n.endswith('sb) , movice_people) --------------------这样是打印成内存地址,要在前面加上list(用列表形式保存值)

                这个是根据n.endswith('sb) 的布尔值,来选择保留(true)movice_people保留值。

    *************************************************************************************************************************

    reduce函数

      from functools import reduce ---------------->>>>>>意思是从functool模块中,导入reduce功能

      def reduce_test (func,array, init = None)>>>>>>>>>>其中init = None是默认参数

      reduce函数

        reduce (function----函数,sequence------序列, inital = None-----初始值参数)

    ----------------------------------------------------------------------------------------------------------------------------------------------

    总结(小结)

    map():

      处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来的一样

    filter():

      遍历序列中的每个元素,判断每个元素得到布尔值,如果布尔值是True,则留下来

    -------------------------------------------------------------------------------------------------------------------------------------------

    内置函数:

      abs()——取绝对值

      all ( n ) ---------其中 n = [1, 2, 4],  all( ) 会将列表中所有的元素进行布尔运算,

              特例:如果是个空的是返回True,这个是在注释里写的,可以去看看

      any()—— 里面有一个是真,则全为真

      bin ( ) ——将十进制转二进制

      bool() ——判断布尔值,( 空,None, 0 布尔值为False)其余都为True

      bytes()——把一个字符转换成字节

          例如 :

    name = '你好'
    print(bytes(name,encoding = 'utf8'))
    
    
    ------resul---------------
    
    b'xe4xbdxa0xe5xa5xbd'

    其中x 表示是十六进制(标识)

    utf-8 中文是3个字节

    gbk   中文是2个字节

    bytes()存在的意义是,因为网络传输只能传二进制

      print(bytes (name,encoding = ‘utf-8’).decode('utf-8))   --------------------其中decode是解码作用,用什么编码就用什么解码

    注意:ascil码不能编中文

    chr():

      print(chr(91))-----------------------打印的结果是  a  ,chr()中给个数字,就会打印成在ascil表里相应位置的字符

    dict()?

    dir()打印某个对象下面有哪些方法,只打印名称。作用是查看作用

    dirmod()-------运用于分页功能

      dirmod(10,3)    --------10可以是一共多少信息,而3是一页放多少信息。

      --------result---------

      (3, 1)取商得余。3为商,1为余。因为余不为0,所以要多分一页。

    dic = {name : ‘wwe’} 字典

    eval()---------------------------------很重要------------------------

    d1 = eval(dic_str)   --------------将字符串中的数据结构提取出来(1)

    d1[ 'name']

    ---------------------result---------------------

    wwe

    eval的第二个功能,把字符串中表达式进行运算

      express = ‘1+2*(3/3-1)- 2’   表达式是字符串形式

      eval(express)

    -----------result-------------

      -1.0

    frozenset() frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

    hash()

      可以hash的数据类型是不可变数据类型,反之

      hash是一种算法,可以防止软件被篡改(通过hash值前后判断)

    help()帮助

    bin()十进制转二进制

    hex()十进制转十六进制

    oct()十进制转八进制

    isinstance(1,int )  ---------------判断1是不是int类型,返回是布尔值。

              str

           list      其中([  ]   ,list) —— True

           dict

    locals()本地,当前级别

    max()取最大值

    min()取最小值

      

  • 相关阅读:
    02(c)多元无约束优化问题-牛顿法
    02(b)多元无约束优化问题-最速下降法
    数据仓库建模指南系列教程学习笔记
    ML_Gradient ascent algorithm for learning logistic regression classifier
    ML_聚类之Nearest neighbor search
    ML_Clustering & Retrieval(一)
    复习_git教程
    Predicting sentiment from product reviews情感预测
    ML_classification_intro
    ML_classification
  • 原文地址:https://www.cnblogs.com/chrpy/p/8512258.html
Copyright © 2011-2022 走看看