zoukankan      html  css  js  c++  java
  • for循环语句学习

    for循环又称为遍历循环,从名字就可以知道,它用于对象的遍历

    语法格式:

    会从可迭代对象对象中依次拿出值来赋值给变量,变量的值每次都会被修改

    for 变量1[变量2...] in 可迭代对象:
        代码块
    

    在这里插入图片描述

    s = '123'
    for n in s:
        print(n)
    # 1
    # 2
    # 3
    

    range方法

    格式:

     range(stop) -> range object
     range(start, stop[, step]) -> range object
    

    返回一个对象,从start位置数字开始,到stop-1的位置数字结束,可以指定步长

    示例:

    for i in range(3):
    #     print(i)
    # 0
    # 1
    # 2
    
    
    
    for i in range(3, 8, 3):
        print(i)
    # 3
    # 6
    

    range方法经常和 for 组合使用,可以用来通过索引遍历序列类型

    s = 'abc'
    l = [1,3,4]
    t = ('x','y',['name','sex'])
    
    for i in range(len(s)):
        print(s[i])
    # a
    # b
    # c
    
    for i in range(len(l)):
        print(l[i])
    # 1
    # 3
    # 4
    
    for i in range(len(t)):
        print(t[i])
    # x
    # y
    # ['name', 'sex']
    

    遍历字典

    字典是没有索引的,因此只能使用for对其直接遍历

    d = {'name': 'bone','age':15}
    for k in d:
        print(k)
    # name
    # age
    

    直接遍历得到的是字典的key,可以通过key取值

    d = {'name': 'bone','age':15}
    for k in d:
        print(d[k])
    # bone
    # 15
    

    可以结合items方法,items得到字段key和values的元组形式值,使用两个变量来接收key和value

    d = {'name': 'bone','age':15}
    for k,v in d.items():
        print(k,v)
    # name bone
    # age 15
    

    遍历集合:

    集合不是序列类型,无法通过索引遍历取值,直接使用for遍历它

    s = {1,'a',5}
    for i in s:
        print(i)
    # 1
    # a
    # 5
    

    break和countinue

    for 中使用break和countinue和while是一样的

    • break:立即终止循环
    • continue:结果当前循环,继续下一个循环
    s = '12345678'
    for i in s:
        if i == '3':
            break
        print(i)
    # 1
    # 2
    
    for i in range(8):
        if i%2 != 0:
            continue
        else:
            print(i)
    # 0
    # 2
    # 4
    # 6
    

    for… else结构

    和while循环一样,for也可以和else组合使用,只有for循环正常结束才会运行for

    s = '1234'
    print('准备开始循环:')
    for i in s:
        if i == '3':
            break
        print(i)
    else:
        print('循环正常结束')
    print('循环执行完毕')
    # 准备开始循环:
    # 1
    # 2
    # 循环执行完毕
    
    
    s = '1234'
    print('准备开始循环:')
    for i in s:
        if i == '3':
            continue
        print(i)
    else:
        print('循环正常结束')
    print('循环执行完毕')
    # 准备开始循环:
    # 1
    # 2
    # 4
    # 循环正常结束
    # 循环执行完毕
    

    推导式

    for 循环还有一个强大的功能,就是推导式,通过推导式可以快速生成列表、元组、字典、集合的数据

    推导列表

    语法格式

    [表达式 for 变量1[变量2..] in 可迭代对象 [if语句]]
    

    示例:

    l = [i for i in range(3)]
    print(l)    # [0, 1, 2]
    
    l = [i**2 for i in range(10) if i%2 != 0]
    print(l)    # [1, 9, 25, 49, 81]
    
    l = [(i**2,j*2) for i in range(5)  for j in range(3) if i%2 !=0 if j%2==0 ]
    print(l)    # [1, 9, 25, 49, 81]
    

    推导元组

    元组跟列表的操作一摸一样,只不过使用小括号,得到的结果是一个对象,叫生成器
    语法格式

    (表达式 for 变量1[变量2..] in 可迭代对象 [if语句])
    

    示例:

    t = (i for i in range(3))
    print(t)    # <generator object <genexpr> at 0x7fe14a657ac0>
    
    t = (i**2 for i in range(10) if i%2 != 0)
    print(t)    # <generator object <genexpr> at 0x7fe14b10d120>
    
    t = ((i**2,j*2) for i in range(5)  for j in range(3) if i%2 !=0 if j%2==0 )
    print(t)    # <generator object <genexpr> at 0x7fe14a657ac0>
    

    如果想要获得元组,需要使用tuple方法

    t = (i for i in range(3))
    print(t)    # <generator object <genexpr> at 0x7fe14a657ac0>
    print(tuple(t)) # (0, 1, 2)
    

    推导字典

    操作也是一样,只不过使用大括号,表达式需要是 k:v 形式,得到的结果是一个字典

    {k:v for 变量1[变量2..] in 可迭代对象 [if语句]}
    

    示例:

    d = {k:None for k in 'abc'}
    print(d)    # {'a': None, 'b': None, 'c': None}
    
    d = {'a': 2, 'b': 30}
    d1 = {k: v for k,v in d.items() if v!=2}
    print(d1)   # {'b': 30}
    

    推导集合

    操作跟列表、元组一样,使用大括号

    se = {i for i in 'abc12d' if i.isdigit()}
    print(se)   # {'1', '2'}
    http://www.dtmao.cc/news_show_676634.shtml
  • 相关阅读:
    Gitlab使用腾讯企业邮箱
    查看Binlog内容
    微信小游戏手记
    clickhouse手记
    腾讯云手记
    go框架gin
    go idea debug
    go手记
    crontab手记
    Laravel-cors 跨域
  • 原文地址:https://www.cnblogs.com/cndeveloper/p/14381589.html
Copyright © 2011-2022 走看看