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

今日内容

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

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()

PythonDay11的更多相关文章

  1. Python-Day11 RabbitMQ/redis

    写在前面: 好久不写了,实在是不想写,坚持果然是一件不容易的事情. 我喜欢玩,我更爱学习,然而喜欢是放肆,爱是克制,哈哈.每天上班有些忙就不想动,只想在床上翻滚或者鏖战召唤师峡谷.上班闲着时想了想,一 ...

  2. Python--day11(函数的参数)

    今日主要内容 1.  函数的参数 2.  函数的嵌套调用 1.  形参与实参 1.  参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎样定义函数的参数:在定义函数阶段,函数名在后面( ...

  3. 路飞学城Python-Day11

    [44.函数-生成器] 需求:有一个列表 [0,1,2,3,4,5,6,7,8,9],对这个列表循环+1 li = [0,1,2,3,4,5,6,7,8,9] li = map(lambda x:x+ ...

  4. python-day11(正式学习)

    目录 文件高级应用 多重操作 r+t:可读,可写(文件名为a) w+t:可写可读 a+t:可追加可读 文件内指针移动及一些操作 指针移动seek(offset,whence) 寻找指针位置tell() ...

  5. 初学Python-day11 函数4

    函数 1.递归函数 自己不断调用自己的过程 2.递归求和 1 def sum(arg): 2 if arg == 1: 3 return 1 4 return arg + sum(arg - 1) 5 ...

  6. 初学python-day11 函数3

    函数 1. global关键字 修改全局变量,声明函数内外使用同一个变量 示例: 1 name = 'xiaoming' 2 3 def test(): 4 global name 5 name = ...

随机推荐

  1. Travis CI eval ./gradlew assemble 错误

    问题 在进行 Travis CI 进行集成编译的时候出现错误. <-------------> 0% WAITINGThe command "eval ./gradlew ass ...

  2. HGOI20190815 题解

    Problem A modsum 求$\sum\limits_{i=1}^{n} \sum\limits_{j=1 , i \neq j}^{m} (n \ mod \ i)(m \ mod \ j) ...

  3. Luogu2000 拯救世界

    题目链接:戳我 生成函数的入门题吧. 我们可以把条件限制转化为生成函数,然后用第i项的系数来表示一共使用n块石头的方案个数. (你问我为什么?你可以自己演算一下,或者去看大佬的博客-->这里面讲 ...

  4. CentOS查看和修改PATH环境变量的方法

    查看PATH:echo $PATH以添加mongodb server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $PA ...

  5. RMQ的ST算法

    ·RMQ的ST算法    状态设计:        F[i, j]表示从第i个数起连续2^j个数中的最大值    状态转移方程(二进制思想):        F[i, j]=max(F[i,j-1], ...

  6. Codeforces Round #201 (Div. 2). E--Number Transformation II(贪心)

    Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Description You ar ...

  7. Oracle11g RAC+DG搭建

    项目环境准备 3.1虚拟机配置 版本选择 注意Linux操作系统.此次项目我选择的版本是Oracle Enterprise Linux 5.4 内存的设置 本人电脑物理内存8G,由于此次实验要开三台虚 ...

  8. JavaWeb_Ajax通过JQuery和原生js异步传输数据

    菜鸟教程 传送门 AJAX 优点:在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容 XMLHttpRequest 对象 传送门 (一) [JQuery]定时发送ajax请求 (二) ...

  9. Java常考面试题整理(六)

    101.HTTP相应的结构是怎么样的? 参考答案: HTTP相应由三个部分组成: 1.状态码(status code):描述了相应的状态,可以用来检查是否成功的完成了请求.请求失败的情况下,状态码可以 ...

  10. Linux常用命令及操作

    shutdown -r now现在重启 shutdown -h now现在关机 reboot重启 startx进入图形界面 chmod +x 777 文件名 授权和可执行 777为二进制111-111 ...