美文网首页
利用Python进行数据分析笔记:02Python语言基础(下)

利用Python进行数据分析笔记:02Python语言基础(下)

作者: 七七师姐 | 来源:发表于2022-04-11 22:52 被阅读0次

    三、控制流

    1.if, elif和else

    一个if语句可以接多个elif代码块和一个else代码块,如果所有elif条件均为False, 则执行else代码块:

    if x < 0:
        print('It`s negative')
    elif x == 0:
        print('Equal to zero')
    elif 0 < x < 5:
        print('Positive but smaller than 5')
    else:
        print('Positive and larger than or equal to 5')
    

    如果某个条件为True, 则后面的elif和else代码块不会执行。

    当使用and和or进行混合条件判断时,条件判断是从左到右的并且在and或or两侧的条件会有“短路”现象:

    a = 5; b = 7
    c = 8; d = 4
    if a < b or c > d:
        print('Made it')
    ### 本例中c>d是不会去判断的,因为第一个比较判断为True
    

    2.for循环

    for循环用于遍历一个集合(例如列表或元组)或一个迭代器。标准的for循环语法如下:

    for value in collection:
        # 用值做些什么
    
    • continue关键字可以跳过continue后面的代码进入下一次循环:
    ###对列表中的非None值进行累加:
    sequence = [1, 2, None, 4, None, 5]
    total = 0
    for value in sequence:
        if value is None:
            continue
        total += value
    
    • break关键字可以结束一个for循环:
    ### 对列表元素累加直到5出现
    sequence = [1, 2, 0, 4, 6, 5, 2, 1]
    total_until_5 = 0
    for value in sequence:
        if value == 5:
            break
        total_until_5 += value
    
    ### break 关键字只结束最内层的for循环;
    ### 外层的for循环会继续运行:
    for i in range(4):
        for j in range(4):
            if j > i:
                break
            print((i, j))
    ......:
    (0, 0)
    (1, 0)
    (1, 1)
    (2, 0)
    (2, 1)
    (2, 2)
    (3, 0)
    (3, 1)
    (3, 2)
    (3, 3)
    
    • 如果集合或迭代器中的元素是一个序列(比如元组或列表),它们可以在for循环语句中很方便地通过拆包成为变量:
    for a, b, c in iterator:
        # 做些什么
    

    3. while循环

    while循环会在条件符合时一直执行代码块,直到条件判断为False或显式地以break结尾时才结束:

    x = 256
    total = 0
    while x > 0:
        if total > 500:
            break
        total += x
        x = x // 2
    

    4. pass

    pass就是什么都不做的语句,表示不执行任何操作:

    if x < 0:
        print('negative!')
    elif x == 0:
        pass
    else:
        print('positive!')
    

    5. range

    range函数返回一个迭代器,该迭代器生成一个等差整数序列:

    range(10)
    Out[39]: range(0, 10)
    list(range(10))
    Out[40]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    ### 起始/结尾/步进(可以是负的)可以传参给range函数:
    list(range(0, 20, 2))
    Out[41]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    list(range(5, 0, -1))
    Out[42]: [5, 4, 3, 2, 1]
    

    range产生的整数包含起始但不包含结尾range常用于根据序列的索引遍历序列:

    seq = [1, 2, 3, 4]
    for i in range(len(seq)):
        val = seq[i]
    

    将0到99,999中所有可以被3或5整除的整数相加:

    sum = 0
    for i in range(100000):
        #%是求模(余数)操作符
        if i % 3 == 0 or i % 5 ==0:
            sum += i
    sum
    Out[44]: 2333316668
    

    6. 三元表达式

    三元表达式允许你将一个if-else代码块联合起来,在一行代码或一个语句中生成数据。语法如下:

    value = treu-expr if condition else false-expr
    

    它与以下更详细的代码效果一致:

    if condition:
        value = true-expr
    else:
        value = false-expr
    

    以下是具体例子:

    'Non-negative' if x >= 0 else 'Negative'
    

    三元表达式可以压缩代码量,但是可能会牺牲可读性。

    相关文章

      网友评论

          本文标题:利用Python进行数据分析笔记:02Python语言基础(下)

          本文链接:https://www.haomeiwen.com/subject/skkysrtx.html