zoukankan      html  css  js  c++  java
  • Python入门--for...遍历循环

    一、for 循环简介

    for 为遍历循环,可以遍历任何序列,如 list,tuple,迭代器等。

    for 的语句格式如下:

    for  <变量>   in   <循环序列>:
    【循环体】

    释:通过 for 循环依次将 <循环序列> 中的数据取出赋值给 <变量>,再通过【循环体】进行处理。

    示例1:for 循环访问列表

    # for 循环访问列表
    list = ['woodman', 'Alan', 'Bobo']
    for name in list:
    print(name)
    输出结果:
    woodman
    Alan
    Bobo

    注意: name 这个变量是在 for 循环中定义的,意思是,依次取出 list 中的每一个元素,并把元素赋值给 name,然后执行for循环体。

    示例2: for 循环访问字典

    dict = {'woodman': 98, 'Alan': 89, 'Bobo': 56}
    for key, value in dict.items():
    print(key, value)

    输出结果:

    Alan 89
    woodman 98
    Bobo 56

    示例3: for 循环访问字符串

    # for 循环访问字符串,可以依次读取每个字符
    for char in 'woodman木头人':
    print(char)
    输出结果:
    w
    o
    ......

    注意:中文字符占2~3个字节(由编码决定,utf-8占3字节),每个中文字符是一个值

    二、for ... else ... (比较少用到)

    for ... else ... 格式:

    for  <变量>   in   <循环序列>:
    【循环体】
    else:
    【else的语句块】

    释:for 遍历序列,无 break 结束当前循环,循环结束后执行 else 语句块

    示例1:

    list = ['woodman', 'Alan', 'Bobo']
    for name in list:
    print(name)
    else:
    print('循环完整结束后执行')
    输出结果:
    woodman
    Alan
    Bobo
    循环完整结束后执行

    示例2:

    list = ['woodman', 'Alan', 'Bobo']
    for name in list:
    print(name)
    if name == 'Alan':
    break # break 结束循环,for 下的 else 也不会执行
    else:
    print('循环完整结束后执行')
    输出结果:
    woodman
    Alan

    示例3:

    list = ['woodman', 'Alan', 'Bobo']
    for name in list:
    if name == 'Alan':
    continue # continue 跳过本次循环,进入下一次循环
    print(name) # 如果被 continue 本条语句不会执行
    else:
    print('循环完整结束后执行')

    输出结果:

    woodman
    Bobo
    循环完整结束后执行

    注意:continue 只是跳过本次循环,循环结束后 else 语句块最后被执行

    三、for 循环嵌套

    循环嵌套为循环中嵌套另外一层循环。

    for <外层循环变量> in <外层循环序列>:
    for <内层循环变量> in <内层循环序列>:
    【内层循环体】
    【外层循环体】

    这个只是一个for 与 for 的循环嵌套,你可以使用 for 与 while 嵌套。

    循环嵌套经典示例1:倒三角的九九乘法表

    # 九九乘法表 倒三角,你可以试试输出正三角
    for i in range(1, 10): # range()请看本章第五部分
    for j in range(i, 10):
    print('%d * %d = %d' % (i, j, i * j), end=' ')
    print('') # 控制换行

    循环嵌套经典示例2:冒泡排序

    # 冒泡排序
    list = [9, 2, 7, 4, 5, 6, 3, 8, 1, 10]
    length = len(list)
    for i in range(length):
    for j in range(length - i):
    if list[length - j - 1] < list[length - j - 2]:
    list[length - j - 1], list[length - j - 2] = list[length - j - 2], list[length - j - 1]
    print(list)

    四、for循环访问迭代对象

    1、迭代器简介

    Python 的 for 循环不仅可以用在 list 或 tuple 上,还可以作用在其他任何可迭代对象上。

    迭代操作就是对于一个集合操作,无论该集合是有序还是无序,我们用 for 循环总是能依次取出集合中的每一个元素。

    释义: 集合是指包含一组元素的数据结构,它包括:
    有序集合:list,tuple,str和unicode;
    无序集合:set
    无序集合并且具有 key-value 对:dict(Python3.6后字典为有序)

    迭代器有两个基本的方法:iter() 和 next()

    iter() 创建一个迭代器

    next() 访问迭代元素,访问后指针向下移一行

    示例:

    >>>list=[0,1,2,3,4]
    >>> it = iter(list) # 创建迭代对象
    >>> print (next(it)) # 访问当前指针元素,结束后指针向下移一步
    0
    >>> print (next(it)) #
    1
    >>>

    2、for循环访问迭代器

    示例:

    list = ['woodman', 'Alan', 'Bobo']
    it = iter(list) # 创建迭代器对象
    for name in it: # 循环访问迭代器
    print(name)

    注意:迭代器访问数据比通过索引循环访问速度更快,数据量大时一般会使用迭代器

    五、range ( ) 类控制循环访问

    range ( ) 为 Python 的自有类,range() 带有内置的迭代方法__iter__() 和 __next()__ ,它是一个可迭代对象,我们可以通过 for 访问 range() 创建的迭代器。

    range 类初始化参数说明:

    range(stop) 从0开始到stop结束(不包含 stop)返回一个产生整数序列的迭代对象

    range(start, stop[, step]) 从 start 开始到 stop 结束(不包含 stop)返回一个整数序列的迭代对象, step 为他的步长

    示例1:

    for i in range(5):
    print(i, end='-')
    输出:0-1-2-3-4-

    示例2 :

    for i in range(1,5):
    print(i, end='-')
    输出:1-2-3-4-

    示例3:

    for i in range(1,5,2):
    print(i, end='-')
    输出:1-3-

    示例4:

    for i in range(-1,-5,-2):
    print(i)
    输出结果
    -1
    -3

    注意:start, stop, step 三个参数可以为负数

    示例5:

    # 结合range()和len()函数以遍历一个序列的索引,如下所示.
    list = ['woodman', 'Alan', 'Bobo']
    for i in range(len(list)):
    print(i,list[i])
    输出结果:
    0 woodman
    1 Alan
    2 Bobo

    注意:for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict 等,任何可迭代对象都可以作用于 for 循环,而内部如何迭代我们通常并不用关心。

    通常可迭代对象一般具备 iter() 和 next() 方法或者 __iter__() 和 __next()__ 方法。

    有相同爱好的可以进来一起讨论哦:企鹅群号:1046795523

    学习视频资料:http://www.makeru.com.cn/live/1392_1164.html?s=143793

  • 相关阅读:
    android细节之禁用activity的系统的默认切换效果
    Spark1.0.0 属性配置
    Memory & MyISAM 引擎小注意! | OurMySQL
    memcached vs MySQL Memory engine table 速度比较_XMPP Jabber即时通讯开发实践_百度空间
    Mysql 官方Memcached 插件初步试用感受
    Aerospike | Aerospike Chinese
    MySQL内存表的特性与使用介绍 -- 简明现代魔法
    memory引擎的索引失效一例
    MySQL内存表(MEMORY)说明 | 一个PHP程序员的备忘录
    MySQL Memory 存储引擎浅析
  • 原文地址:https://www.cnblogs.com/jinwenyi/p/13705120.html
Copyright © 2011-2022 走看看