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

一,优雅你的Jupyter

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

平凡方法:

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

c.NotebookApp.notebook_dir =
 'F:\我的坚果云\PythonFiles' 

优雅方法:

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

F:

cd F:\我的坚果云\PythonFiles

jupyter notebook

pause

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

2,获取函数帮助

平凡方法:

help()。

优雅方法:

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

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

平凡方法:

逐个修改。

优雅方法:

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

二,优雅你的赋值语句

4,为多个变量赋值

平凡方法:

逐一赋值。

优雅方法:

使用元组语法同时赋值。

5,序列解包

平凡方法:

使用下标访问逐一赋值。

优雅方法:

序列自动解包。

6,对象方法的嵌套

平凡方法:

定义中间变量,不嵌套。

优雅方法:

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

三,优雅你的判断语句

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

平凡方法:

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

优雅方法:

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

8,区间判断

平凡方法:

使用and连接两次判断。

优雅方法:

使用链式判断。

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

平凡方法:

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

优雅方法:

使用关键字in

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

平凡方法:

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

优雅方法:

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

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

平凡方法:

使用or连接多次判断。

优雅方法:

使用any函数。

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

平凡方法:

使用and连接多次判断。

优雅方法:

使用all函数。

四,优雅你的循环语句

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

平凡方法:

使用普通for循环。

优雅方法:

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

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

平凡方法:

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

优雅方法:

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

15,显示循环进度

平凡方法:

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

优雅方法:

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

优雅方法加强版:

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

五,优雅你的函数

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

平凡方法:

使用def关键字定义函数。

优雅方法:

使用lambda匿名函数。

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

平凡方法:

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

优雅方法:

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

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

平凡方法:

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

优雅方法:

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

18式优雅你的Python的更多相关文章

  1. 飞跃式发展的后现代 Python 世界

    飞跃式发展的后现代Python世界 如果现代Python有一个标志性特性,那么简单说来便是Python对自身定义的越来越模糊.在过去的几年的许多项目都极大拓展了Python,并重建了“Python”本 ...

  2. 优雅的使用Python之软件管理

    上篇<优雅的使用python之环境管理>http://dwz.cn/wTsOr,如何管理python环境,有了一个干净的python环境之后,就不可避免的安装python软件包(pytho ...

  3. 优雅的使用python之环境管理

    优雅的使用python之环境管理 缘起 情景1:不同python版本的管理 同一电脑上的多个python版本之前的管理,为了突出问题的普遍存在,下面是有人在segmentfault上提的问题. 摘自: ...

  4. 如何优雅地退出python程序

    如何优雅地退出python程序 一个单模的python程序,启动之后要能够优雅地关闭.即当用户按Ctrl+C或者kill pid的时候,程序都能从容关闭.实现起来非常简单. is_running = ...

  5. Unbuntu 18.04 LTS 环境下Python安装GDAL组件

    Unbuntu 18.04 LTS 环境下Python安装GDAL组件 // 非必要 sudo add-apt-repository ppa:ubuntugis/ppa sudo apt-get up ...

  6. 程序员式优雅表白,教你用python代码画爱心

    还能用python代码画爱心?还有这种操作?这是什么原理? 不相信python代码可以画爱心?先来一张效果图来看看效果吧! 用python代码画爱心的思路是怎样的? 1.怎么画心形曲线 2.怎么填满心 ...

  7. 如何优雅地实现Python通用多线程/进程并行模块

    当单线程性能不足时,我们通常会使用多线程/多进程去加速运行.而这些代码往往多得令人绝望,需要考虑: 如何创建线程执行的函数? 如何收集结果?若希望结果从子线程返回主线程,则还要使用队列 如何取消执行? ...

  8. python编程【环境篇】- 如何优雅的管理python的版本

    简介 之前的文章(Python2还是python3 )中我们提到,建议现在大家都采用python3,因为python2在今年年底将不在维护.但在实际的开发和使用python过程中,我们避免不了还得用到 ...

  9. 如何优雅的使用python中的代码注释

    在编写代码时,确保您的代码易于被其他人理解时很重要的,给变量,函数起合适的名字以及合理的组织代码都是很好的方法. 使用代码注释时增加代码可读性的另一种方便简单且重要的方法! 1.为什么代码注释如此重要 ...

随机推荐

  1. android 扇形菜单

    引言: android中的菜单与windows的菜单没有什么区别,基本就是一个矩形框,如下: 这个菜单有多么能经得住历史的考验我就不多说了!我们再来看看最新有关手机可操作区域的调查 有此可以看出屏幕越 ...

  2. 客户端使用自定义代理类访问WCF服务

    通常在客户端访问WCF服务时,都需要添加服务引用,然后在客户端app.config或web.config文件中产生WCF服务的客户端配置信息.若是每添加一个服务都是这样做,这样势必会将比较麻烦,能否简 ...

  3. Linux 学习 二, 安装JDK

    我是利用在window环境下载好JDK,然后传到VMware中linux中 下载JDK http://www.oracle.com/technetwork/java/javase/downloads/ ...

  4. POJO详解

    转自:http://blog.csdn.net/lushuaiyin/article/details/7436318  一:什么是POJO POJO的名称有多种,pure old java objec ...

  5. vos忙时闲时费率不一样怎么设置

    问题: 现有一客户要求上午闲时由原来的9:00追加到9:30 即: 9:30——12:00为忙时 14:00——18:00为忙时 其他为闲时 忙时费率为0.04元即4分 闲时费率为0.025元即2分5 ...

  6. 复制windows CMD命令行中的内容

    标记文本后,按"回车",或鼠标"右键"为从CMD中复制文本. 在CMD中,按鼠标"右键",为在CMD中粘贴文本.

  7. ARM实验6——ADC实验

    实验内容: 编写ADC程序,通过FS4412开发板上的电位器,改变ADC通道输入的电压值,经过ADC转换的值打印到终端. 实验目的: 熟悉开发环境: 掌握猎户座4412处理器ADC模块的使用和编程. ...

  8. 问题 C: P4 游戏中的Human角色

    题目描述 在一个平面打斗游戏中,任何的角色(Role)都有血量(blood)和位置loc(此处loc是Location类的实例)属性.有了Role类,可以派生出不同的角色,如人.神仙.怪兽等.如下程序 ...

  9. 线程 task训练

    1. task类表示一个线程,最简单的task的构造方法是 ,参数是Action<t>,是一个无返回值的泛型委托. 指向要执行的函数.当调用·start()方法时,就执行子线程.执行指向的 ...

  10. Java 截屏工具类

    PrintScreenUtils.java package javax.utils; import java.awt.AWTException; import java.awt.Dimension; ...