一、字典类型

  *)字典是python中唯一的映射类型 ,key-value(哈希表),字典对象是可变的,但key必须用不可变对象。

  *)字典的创建和字典值得访问

 wKioL1llwSjj7WI4AAB0-Eq1-Oo875.png

  ##字典的内容在查看时不能通过索引来进行查看

 *)内建方法:fromkeys

    字典中的key有相同的value值,默认为None

  

wKiom1llwcqCzz9pAAAx6wT3QW8246.png

wKioL1llwcvxsryxAAAuxcRwfaI586.png


  *)字典的循环遍历访问

  wKiom1llwhDB8uVfAAA2cgepp3M431.png

  *)字典中key-value的添加

    dic[key] = value

   wKiom1llwkWiRvkXAABFDHohvk0174.png

   ##通过字典的添加发现,字典是无序的数据类型

  *)字典的删除

    **)根据key值删除字典的元素

  wKioL1llwqHifkDKAABLZhyTM64432.png

    **)随机删除字典元素,返回(key,value)

  wKiom1llws2xemhxAABKUQmfUnU152.png

   **)删除字典中的所有元素

   wKiom1llwu3i2lzMAAA10ZuyqyQ498.png

   **)删除字典本身

   wKioL1llwwjg7EBKAABX4ziwHas089.png

  *)字典的常用方法

   **)dic.get()

    如果key存在于字典中,返回对应的value值

   wKioL1llw1DjnGTvAAAwk_SUQb4202.png

   **)dic.keys()

     返回字典中的所有key值

  wKiom1llw3Tw2pcvAAAxwwZ3w4U196.png

  **)字典内容的更新

  wKioL1llw5jSi1u7AABYBCUzDf0362.png

  **)检查字典中是否存在某个key值

  wKiom1llw7uDVziyAABKywjkmOk684.png

 

二、函数

  *)定义函数

   **)def关键字,依次写出函数名、括号、括号中的参数和冒号:

   **)在缩进块中编写函数体,函数的返回值用return语句返回。

     def fun():

        pass

        return

 *)调用函数

   python内置了很多有用的函数,我们可以直接调用:

    **)sum()   ##求和内置函数

   wKioL1llxemw0qIaAAAgiO0QV6I840.png   

   **)abs()  ##求绝对值

   wKioL1llxg2AWfdEAAAT3-Y8vMw312.png

   **)cmp()  ##比较函数

   wKioL1llxjajcL-AAAAlgOkamHA242.png

   

  *)函数类型转换

   int(obj)  ##将字符串转为整型

   float(obj) ##转化为浮点型

   str(obj) ##转化为字符串型   *)什么是函数名

    **)函数名与变量名类似,其实就是指向一个函数对象的引用;

    **)给这个函数起了一个 “别名”:函数名赋给一个变量

  *)空函数

    定义一个什么也不做的空函数,可以用pass语句;

    pass可以用来作占位符,还没想好怎么写函数的代码,就可以先放一个pass,整个代码先运行起来

    def  fun()

     pass


  *)参数检查

    **)调用函数时,如果参数个数不对,python解释器会自动检查出来,并超出TypeError;

    **)如果参数类型不对,python解释器就无法帮我们检查。

    **)数据类型检查可以用内置函数isinstance实现

  *)函数返回值

    **)函数返回值用return关键字;

    **)返回一个tuple可以省略括号;

    **)python的函数返回多值其实就是返回一个tuple

    **)函数执行完毕没有return语句时,自动return None

  *)函数参数

    **)有多个参数时,变化大的放前面,变化小的放后面;

       必选参数在前,默认参数在后

  *)可变参数

   可变参数就是传入的参数个数是可变的,可以是1个,2个到任意个,也可以是0个 

     *args

  *)关键字参数

    **)关键字参数允许传入0个或任意个含参数名的参数;

    **)这些关键字参数在函数内部自动组装为一个dict;

    **)关键字参数**kwargs

三、函数的高级特性

  *)迭代

   可以通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(iteration)

   只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代

 *)如何判断对象是否可以迭代

   利用collection模块的iterable类型判断

   

wKioL1lly2yQnZaeAAANnfS8A68549.png

wKioL1lly2zSLdVSAAAZenz-BjA313.png

  *)利用python内置的枚举方法enumerate,把一个list变成索引-元素对

   wKioL1lly8mTHKPbAAAhYtbiKDU558.png

  *)for循环里,同时引用两个变量,并且迭代显示

  wKiom1llzBWCWWhBAAAppUzbvL8934.png

  *)列表生成式

   range模块

    wKiom1llzF7QbCAaAAAdgjjRy04740.png

   列表生成式:

    wKioL1llzIOCJEHyAAAjsXcYMd0441.png

     ##循环太麻烦,而列表生成式则可以用一行语句代替循环生成上面的list

  *)列表生成器

   **)为什么需要列表生成器:

     通过列表生成式,我们可以直接创建一个列表,受到内存限制,列表容量肯定是有限的;

     创建一个包含100万个元素的列表,占用很大的 存储空间;

   **)生成器是什么:
     在循环过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。在python中,这种一边循环一边计算的机制,称为生成器

   ##使用g.next()方法依次读取元素(麻烦)

    wKioL1llzcWBi3HUAABpse00OK0513.png

    ##使用for循环(简单快捷方便)

    wKioL1llzePCGipFAAATK3XnBVk802.png