python3 for循环

引言


很多情况下,我们会重复做同一件有规律的事情,我们会利用 for 来解决类似这种机械性的事情。

简介


操作系统:window7 x64
编程IDE:Pycharm 2016.1.2
Python版本:3.6.1
编辑时间:2017年4月30日

版权所有:OE, 转载请注明出处:http://blog.csdn.net/csnd_ayo

for 循环


简述

  • 英文原文

    The for statement is used to iterate over the elements of a sequence (such as a string, tuple or list) or other iterable object

  • 中文翻译

    for语句用于遍历序列的元素(如一个字符串,元组或列表)或其他可以迭代的对象

基础

  • 示例代码

    list = [1,2,3,4,5]
    
    
    # for 迭代器 in 列表:
    
    for x in list:
        print(x, end=',')
  • 输出内容

    1,2,3,4,5,
  • 结论

    利用for循环可以对列表进行逐个访问, 每次向列表中取出一个元素,拷贝给迭代器。

深入

  • for循环有个计数器

    • 示例代码

      list = [1, 2, 3, 4, 5]
      for x in list:
      list.pop(0)
      print(x, end= " : ")
      print(list)
    • 输出内容

      1 : [2, 3, 4, 5]
      3 : [3, 4, 5]
      5 : [4, 5]
    • 逻辑描述

      循环取列表中的每个元素,
      第一次循环:
      
          取第一个元素(值:1)
          弹出(pop) 下标为0的元素(值:1)
          打印:1 : [2, 3, 4, 5]
      
      第二次循环:
      
          取第二个元素(值:3)
          弹出(pop) 下标为0的元素(值:2)
          打印:3 : [3, 4, 5]
      
      第三次循环:
      
          取第三个元素(值:5)
          弹出(pop) 下标为0的元素(值:3)
          打印:5 : [4, 5]
      
    • 总结

      每次弹出首个元素, x 还是会正常取到 n + 1 位置的元素值,说明 for 循环中有一个隐藏的计数器,来记录当前读到第几个元素了。

  • 是拷贝不是元素本身

    • 示例代码

      list = [1,2,3,4,5]
      for x in list:
          list.pop(0)
          print(" old: ", end=str(x))
          x = 1
          print(" new: ", end=str(x))
          print(" new list: ", end=str(list))
          print()
    • 输出内容

       old: 1 new: 1 new list: [2, 3, 4, 5]
       old: 3 new: 1 new list: [3, 4, 5]
       old: 5 new: 1 new list: [4, 5]
    • 总结

      每次修改元素 x 列表本身并没有修改,说明 x 不是元素本身,而是元素的拷贝。

  • 如何修改列表本身

    • 示例代码 1

      list = [1,2,3,4,5]
      for x in range(len(list)):
          print(list, end=' : ')
          print(list[x])
          list.pop(0)

      输出错误:因为他并不是迭代器,他是访问元素本身,因为list在每次循环时,都弹出元素,当list访问到不存在的下标元素时,发生了错误。

    • 示例代码 2

      list = [1, 2, 3, 4, 5]
      for x in range(len(list)):
          print(list, end=' : ')
          list[x] = 1
          print(list[x])
    • 输出内容

      [1, 2, 3, 4, 5] : 1
      [1, 2, 3, 4, 5] : 1
      [1, 1, 3, 4, 5] : 1
      [1, 1, 1, 4, 5] : 1
      [1, 1, 1, 1, 5] : 1

总结

从代码中可以看出,这是一个典型的迭代器,他具备计数功能。
每一次for循环,他的计数器都会加 1,若访问到了下个元素,则拷贝其值到迭代器 x 中,
若访问不到下个元素,则退出当前循环。

  1. 他是一个迭代器
  2. 具备计数功能
  3. 他访问的不是元素本身,而是元素的拷贝

引申


[文章] for 循环中的 else 语句   前往

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值