zoukankan      html  css  js  c++  java
  • PythonDay11

    第十一章函数使用_迭代器

    今日内容

    函数名的第一类对象及使用

    f-strings

    迭代器

    函数名的第一类对象及使用

    • 函数名可以当做值,赋值给变量

    • 函数名可以当做容器内的元素

    • 函数名可以当做函数的参数

    • 函数名可以当做函数的返回值

    f-strings

    f-strings
    #     f"{变量名}"
    #     F"{变量名}"
    #     f"""{变量名}"""
    #     f"{input()}"
    #     f"{3 if 3>2 else 2}"
    #     lst = [1,2,3,4,5]
    #     f"{lst[4]}"
    #     f"{lst[-1]}"
    #     f"{dic['key1']}"

    迭代器

    可迭代对象:

    只要具有__iter__()方法就是一个可迭代对象

    迭代器:

    具有__iter__()和__next__()两个方法才是迭代器

    lst = [1, 2, 3, 4]
    # l = iter(lst) #变成迭代器,建议使用iter()
    l = lst.__iter__() # 将可迭代对象转换成迭代器
    print(l.__nexr__()) # 获取一个值
    print(l.__nexr__()) # 每一行获取一个值,当超过索引的时候会报错,并且只能从头到尾,不可逆

     

    迭代器的优点

    • 惰性机制 ---节省空间

    迭代器的缺点

    • 1.不能直接查看值,迭代器查看到的是一个迭代器的内存地址

    • 2.一次性,用完就没有了

    • 3.不能逆行

      时间换空间: 迭代器就是节省了空间,但是取值时间较长

      空间换时间: 容器存储大量的元素,取值时 取值时间短,但是容器占用空间较大

      迭代器是基于上一次停留的位置,进行取值

      可迭代对象:具有iter()方法就是一个可迭代对象

      迭代器:具有iter()和next()方法就是一个迭代器

       

    for循环本质
    # while True:
      #     try:
      #         print(l.__next__())
      #     except StopIteration:
      #         break
    # 里面有一个捕捉异常的机制,所以取值不会超
    python3和python2的区别:
    # pyhton3:
      # iter()和 __iter__() 都有
      # next()和__next__()都有

    # python2:
      # iter()
      # next()
  • 相关阅读:
    day08作业
    Python进制之间的转换
    day07作业
    Python之深浅拷贝详解
    day06作业
    Python流程控制-循环语句for、while
    Python条件语句-if
    Python变量类型之可变/不可变类型
    Cross platform
    Windows version PE System Key
  • 原文地址:https://www.cnblogs.com/xuyuwei/p/11360049.html
Copyright © 2011-2022 走看看