zoukankan      html  css  js  c++  java
  • 18式优雅你的Python

    本文来自读者梁云同学的投稿,公众号:Python与算法之美

     

    一,优雅你的Jupyter

     

    1,更改Jupyter Notebook初始工作路径

     

    平凡方法:

    在cmd中输入jupyter notebook --generate-config,然后找到生成的配置文件jupyter_notebook_config.py,在其中加入一条语句:

     

     

    优雅方法:

    新建文本文件,在其中输入以下内容:

     

    F:

    cd F:我的坚果云PythonFiles

    jupyter notebook

    pause

     

    保存后将文件重命名为jupyter.cmd,双击该文件即可。

     

    img

     

    2,获取函数帮助

     

    平凡方法:

    help()。

    img

    优雅方法:

    光标移动至函数名右侧(或选中函数名),按住Shift + Tab键弹出帮助文本框。

     

    img

     

    3,修改多处的同一标识符名字

     

    平凡方法:

    逐个修改。

     

    优雅方法:

    按住Ctrl鼠标移动光标同时选中多处编辑位置,启动多行编辑。

    img

     

    二,优雅你的赋值语句

     

    4,为多个变量赋值

     

    平凡方法:

    逐一赋值。

     

    img

     

    优雅方法:

    使用元组语法同时赋值。

     

    img

     

    5,序列解包

     

    平凡方法:

    使用下标访问逐一赋值。

     

    img

     

    优雅方法:

    序列自动解包。

    img

     

     

    6,对象方法的嵌套

     

    平凡方法:

    定义中间变量,不嵌套。

     

    img

     

    优雅方法:

    使用对象方法嵌套,减少中间变量。

     

    img

     

    三,优雅你的判断语句

     

    7,单行if语句:if...else...三目运算符

     

    平凡方法:

    使用普通需要换行的if...else...语句。

     

    img

    优雅方法:

    使用单行if语句:if...else...三目运算符。

     

    img

    8,区间判断

     

    平凡方法:

    使用and连接两次判断。

     

    img

     

    优雅方法:

    使用链式判断。

    img

     

    9,判断是否为多个取值之一

     

    平凡方法:

    使用or连接多次相等判断。

     

    img

     

     

    优雅方法:

    使用关键字in

     

    img

    10,判断是否为空列表,空字典,空字符串

     

    平凡方法:

    使用len函数判断长度是否大于0。

     

    img

     

    优雅方法:

    利用隐含类型转换直接判断

     

    img

     

    11,判断诸多条件是否至少有一个成立

     

    平凡方法:

    使用or连接多次判断。

     

    img

     

    优雅方法:

    使用any函数。

     

    img

     

    12,判断诸多条件是否全部成立

     

    平凡方法:

    使用and连接多次判断。

     

    img

     

    优雅方法:

    使用all函数。

     

    img

    四,优雅你的循环语句

     

    13,单行循环语句:推导式

     

    平凡方法:

    使用普通for循环。

     

    img

    优雅方法:

    使用推导式:[... for .... in ... if ... ]。

     

    img

     

    14,同时遍历序列的元素和元素下标

     

    平凡方法:

    遍历下标,并用下标访问元素。

     

    img

    优雅方法:

    使用enumerate函数生成下标和元素对。

     

    img

     

    15,显示循环进度

     

    平凡方法:

    直接不断print下标。该方法容易导致输出刷屏。

     

    img

     

    优雅方法:

    print下标后设置不换行并使用‘ ’回车到行首以避免输出刷屏。

     

    img

     

    优雅方法加强版:

    定义progress_bar函数,直观显示进度条。

     

    img

    五,优雅你的函数

     

    16,使用lambda匿名函数实现简单的函数

    平凡方法:

    使用def关键字定义函数。

     

    img

     

    优雅方法:

    使用lambda匿名函数。

     

    img

    17,使用yield生成器收集系列值

     

    平凡方法:

    在函数中直接用列表收集系列值。

     

    img

     

     

    优雅方法:

    使用yield生成器收集系列值。生成器具有惰性计算特点,被迭代才逐个计算输出值。

     

    img

    18,使用装饰器给函数添加插入日志,性能测试等非核心功能

     

    平凡方法:

    将插入日志,性能测试等非核心功能直接内嵌到函数定义中。

     

    img

     

    优雅方法:

    使用装饰器扩展函数的非核心功能。装饰器函数可以一次定义,到处装饰。

     

    img

     

     

    img

     

  • 相关阅读:
    mysql复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/amou/p/9530932.html
Copyright © 2011-2022 走看看