美文网首页
Python优雅写法,让你工作效率翻2倍

Python优雅写法,让你工作效率翻2倍

作者: 52353ffa8b86 | 来源:发表于2018-08-30 16:55 被阅读212次

    此文首发于公众号「brucepk」,欢迎直接去公众号看。

    “   阅读文本大概需要 2.6 分钟

    我们都知道,Python 的设计哲学是「优雅」、「明确」、「简单」。这也许很多人选择 Python 的原因。但是我收到有些伙伴反馈,他写的 Python 并不优雅,甚至很臃肿,那可能是你的姿势不对哦!今天就给大家带来 Python 语句的十大优雅之法。

    为多个变量赋值

    有时,有多个变量需要赋值,这时你会怎么赋值呢?

    常规方法:

    常规方法是给变量逐个赋值。

    a = 0
    b = 1
    c = 2

    优雅方法:

    直接按顺序对应一一赋值。

    a, b, c = 0, 1, 2

    序列解包

    需要取出列表中的元素。

    常规方法:

    一般我们知道可以通过下标获取具体元素。

    info = ['brucepk', 'man', 'python']
    name = info[0]
    sex = info[1]
    tech = info[2]
    print(name,sex,tech)

    # 结果
    brucepk man python

    优雅方法:

    给出对应变量接收所有元素。

    info = ['brucepk', 'man', 'python']
    name,sex,tech = info
    print(name,sex,tech)

    # 结果
    brucepk man python

    优雅你的判断语句

    我们用判断语句来定义一个绝对值函数。

    常规方法:

    x = -6
    if x < 0:
        y = -x
    else:
        y = x
    print(y)

    # 结果
    6

    优雅方法:

    x = -6
    y = -x if x<0 else x
    print(y)

    # 结果
    6

    区间判断

    使用 and 连续两次判断的语句,条件都符合时才执行语句。

    常规方法:

    score = 82
    if score >=80 and score < 90:
        level = 'B'
    print(level)

    # 结果
    B

    优雅方法:

    使用链式判断。

    score = 82
    if  80 <= score < 90:
        level = 'B'
    print(level)

    # 结果
    B

    多个值符合条件判断

    多个值任意一个值符合条件即为 True 的情况。

    常规方法:

    num = 1
    if num == 1 or num == 3 or num == 5:
        type = '奇数'
    print(type)

    # 结果
    奇数

    优雅方法:

    使用关键字 in,让你的语句更优雅。

    num = 1
    if num in(1,3,5):
        type = '奇数'
    print(type)

    # 结果
    奇数

    判断是否为空

    判断元素是空还是非空。

    常规方法:

    一般我们想到的是 len() 方法来判断元素长度,大于 0 则为非空。

    A,B,C =[1,3,5],{},''
    if len(A) > 0:
        print('A 为非空')
    if len(B) > 0:
        print('B 为非空')
    if len(C) > 0:
        print('C 为非空')

    # 结果
    A 为非空

    优雅方法:

    在之前的文章 

    零基础学 python 之 if 语句

    中讲过,if 后面的执行条件是可以简写的,只要条件 是非零数值、非空字符串、非空 list 等,就判断为 True,否则为 False。

    A,B,C =[1,3,5],{},''
    if A:
        print('A 为非空')
    if B:
        print('B 为非空')
    if C:
        print('C 为非空')

    # 结果
    A 为非空

    多条件内容判断至少一个成立

    常规方法:

    用 or 连接多个条件。

    math,English,computer =90,80,88
    if math<60 or English<60 or computer<60:
        print('not pass')

    # 结果
    not pass

    优雅方法:

    使用 any 语句。

    math,English,computer =90,59,88
    if any([math<60,English<60,computer<60]):
        print('not pass')

    # 结果
    not pass

    多条件内容判断全部成立

    常规方法:

    使用 and 连接条件做判断。

    math,English,computer =90,80,88
    if math>60 and English>60 and computer>60:
        print('pass')

    # 结果
    pass

    优雅方法:

    使用 all 方法。

    math,English,computer =90,80,88
    if all([math>60,English>60,computer>60]):
        print('pass')

    # 结果
    pass

    遍历序列的元素和元素下标

    常规方法:

    使用 for 循环进行遍历元素和下标。

    L =['math', 'English', 'computer', 'Physics']
    for i in range(len(L)):
        print(i, ':', L[i])

    # 结果
    0 : math
    1 : English
    2 : computer
    3 : Physics

    优雅方法:

    使用 enumerate 函数。

    L =['math', 'English', 'computer', 'Physics']
    for k,v in enumerate(L):
        print(k, ':', v)

    # 结果
    0 : math
    1 : English
    2 : computer
    3 : Physics

    循环语句优化

    之前的文章 

    零基础学 Python 之列表生成式

    中讲过列表生成时的用法,举例:生成 [1x1,2x2,3x3,4x4,5x5]。

    常规方法:

    使用简单的 for 循环可以达到目的。

    L = []
    for i in range(1, 6):
        L.append(i*i)
    print(L) 

    #结果:
    [1, 4, 9, 16, 25]

    优雅方法:

    使用列表生成式,一行代码搞定。

    print([x*x for x in range(1, 6)]) 

    #结果:
    [1, 4, 9, 16, 25]

    Python 这些优雅的写法学会了吗?自己赶紧动手试试吧。

    此文章如果对你有点帮忙的话希望大家能多给点支持,关注、点赞、转发对我都是一种鼓励,有什么问题欢迎在后台联系我,也可以在后台加入技术交流群,群里有大神,可以一起交流学习。

    pk哥还没开通留言功能,觉得不错,点赞、转发朋友圈都是一种支持。

    推荐阅读

    Python让你的数据生成可视化图形

    Python 这些冷知识你知道几个?

    人生苦短,我用 Python

    brucepk

    长按二维码关注我们

    本公众号专注:

    1.Python 技术分享

    2.Python 爬虫分享

    3.资料、工具共享

     欢迎关注我们,一起成长!

    相关文章

      网友评论

          本文标题:Python优雅写法,让你工作效率翻2倍

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