zoukankan      html  css  js  c++  java
  • Python的for循环

    一、for循环

      for循环:循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。

      目的:之所以要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁。

    二、for循环语法如下

    for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串列表字典,其实也可以是tuple(),set()
        代码一
        代码二
        ...
    # # for循环
    # # 列表取值
    # l = ['lsj','a','b']
    # for x in l:
    #     print(x)

    lsj
    a
    b

    
    # 参照例1来介绍for循环的运行步骤
    # 步骤1:从列表['lsj','a','b']中读出第一个值赋值给x(x=‘lsj’),然后执行循环体代码
    # 步骤2:从列表['lsj','a','b']中读出第二个值赋值给x(x=‘a’),然后执行循环体代码 
    # 步骤3: 重复以上过程直到列表中的值读尽

    三、 for循环应用案例

    案例一:

    # 简单版:for循环的实现方式
    # l = ['lsj', 'b', 'c']  # 定义一个列表
    # for x in l:
    #     print(x)
    # lsj
    # b
    # c
    
    # 复杂版:while循环的实现方式
    l = ["lsj","b","c"]
    i = 0
    while i < 3:
        print(l[i])
        i += 1
    
    # lsj
    # b
    # c

    # 使用循环取出0-5的值
    # 简单版:for循环的实现方式一、
    # for count in range(6): # range(6)会产生从0-5这6个数
    # print(count)
    # 复杂版:while循环的实现方式
    # count = 0
    # while count < 6:
    # print(count)
    # count += 1

    案例二:遍历字典

    # 简单版:for循环的实现方式
    dic = {'name':'lsj','age':18,'gender':'male'}
    for k in dic:  # for 循环默认取的是字典的key赋值给变量名k
        print(k,dic[k])
    # name lsj
    # age 18
    # gender male
    
    # 复杂版:while循环确实可以遍历字典,后续将会迭代器部分详细介绍

    案例三:for循环嵌套

    #请用for循环嵌套的方式打印如下图形:
    *****
    *****
    *****
    for i in range(3):
        for j in range(5):
            print("*",end='')
        print()  # print()表示换行
    四、总结for循环与while循环的异同

    (1)相同之处:都是循环,for循环可以干的事,while循环也可以干

    (2)不同之处:

      while循环称之为‘’条件循环‘’,循环次数取决于条件何时变为假

      for循环称之为"取值循环",循环次数取决in后包含的值的个数

    五、for循环控制循环次数:range()

       in后直接放一个数据类型来控制循环次数有局限性:

      当循环次数过多时,数据类型包含值的格式需要伴随着增加

       range功能介绍

    range(10)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 从0开始有头无尾
    
    range(1,10,1)  # 1 2 3 4 5 6 7 8 9 设定开始,结束,步长
    
    range(1,10,2)  # 1 3 5 7 9

      range()的补充:python2与python3的不同之处。

        在python2中对range(10)的处理:一个篮子里面装有10个鸡蛋,空间较大。

        在python3中对range(10)的优化:一只可以下10个鸡蛋的母鸡,空间较小。

      for搭配range,可以按照索引取值,(比较麻烦所以不推荐)

    l = ['lsj', 'a', 'c']  # len(l)
    for i in range(len(l)):
        print(i, l[i])
    for x in l:
        print(x)

      PEP8规范写法

    for i in range(5):
        if i == 4:continue # PEP8规范不建议这样写
        print(i)
    
    for i in range(5):
        if i == 4:
            continue # PEP8规范这样写
        print(i)

    六、for循环的跳出

    for+break: 同while循环一样,只要运行到break就会立刻中止本层循环

    for+else:同while循环一样,只要运行到break就立即终止本次循环

    总结:for+break,for+continue,for+else的用法与while相同

    练习一:

    # 打印九九乘法表
    
    for i in range(1,10):
        for j in range(1,i+1):
            print('%s*%s=%s' %(i,j,i*j),end=' ')
        print()

    练习二:

    # 打印金字塔
    #
    分析 ''' #max_level=5 * # current_level=1,空格数=4,*号数=1 *** # current_level=2,空格数=3,*号数=3 ***** # current_level=3,空格数=2,*号数=5 ******* # current_level=4,空格数=1,*号数=7 ********* # current_level=5,空格数=0,*号数=9 # 数学表达式 空格数=max_level-current_level *号数=2*current_level-1 ''' # 实现: max_level=5 for current_level in range(1,max_level+1): for i in range(max_level-current_level): print(' ',end='') #在一行中连续打印多个空格 for j in range(2*current_level-1): print('*',end='') #在一行中连续打印多个空格 print()
    
    
    
     
  • 相关阅读:
    互斥锁Mutex与信号量Semaphore的区别
    c/c++强制类型转换
    c++中的隐藏、重载、覆盖(重写)
    运算符重载详解
    类的大小
    C++ static、const和static const 以及它们的初始化
    一种隐蔽性较高的Java ConcurrentModificationException异常场景
    Java编码常见的Log日志打印问题
    Java编程常见缺陷汇总(一)
    Java字符串连接的多种实现方法及效率对比
  • 原文地址:https://www.cnblogs.com/liunaixu/p/12460044.html
Copyright © 2011-2022 走看看