Python从入门到摔门(5):18式优雅你的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,双击该文件即可。

image

2,获取函数帮助

平凡方法:

help()。

image

优雅方法:

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

image

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

平凡方法:

逐个修改。

优雅方法:

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

image

二,优雅你的赋值语句

****4,为多个变量赋值****

平凡方法:

逐一赋值。

image

优雅方法:

使用元组语法同时赋值。

image

****5,序列解包****

平凡方法:

使用下标访问逐一赋值。

image

优雅方法:

序列自动解包。

image

****6,对象方法的嵌套****

平凡方法:

定义中间变量,不嵌套。

image

优雅方法:

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

image

三,优雅你的判断语句

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

平凡方法:

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

image

优雅方法:

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

image

****8,区间判断****

平凡方法:

使用and连接两次判断。

image

优雅方法:

使用链式判断。

image

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

平凡方法:

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

image

优雅方法:

使用关键字in

image

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

平凡方法:

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

image

优雅方法:

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

image

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

平凡方法:

使用or连接多次判断。

image

优雅方法:

使用any函数。

image

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

平凡方法:

使用and连接多次判断。

****

image

****

优雅方法:

使用all函数。

image

四,优雅你的循环语句

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

平凡方法:

使用普通for循环。

image

优雅方法:

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

image

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

平凡方法:

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

image

优雅方法:

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

image

****15,显示循环进度****

平凡方法:

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

image

优雅方法:

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

image

优雅方法加强版:

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

image

五,优雅你的函数

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

平凡方法:

使用def关键字定义函数。

image

优雅方法:

使用lambda匿名函数。

image

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

平凡方法:

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

image

优雅方法:

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

image

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

平凡方法:

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

image

优雅方法:

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

image


点赞关注.jpg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏noteless

[三]java8 函数式编程Stream 概念深入理解 Stream 运行原理 Stream设计思路

        流不是存储元素的数据结构;相反,它通过一个计算操作的管道,从一个数据源,如数据结构、数组、生成器函数或i/o通道中传递元素

43250
来自专栏python小白到大牛

零基础学习python编程不可错过的学习总结,小白福利!

通过以上可以看到我们写的很贱的程序随便保存了一个.txt结尾的格式,竟然也执行了,并没有按照统一要求的.py格式来设计, 那是不是说明后缀名可以说是任意的呢?理...

16130
来自专栏小白的技术客栈

Python内置数据结构之字典

今天给大家讲解Python内置数据结构:字典。字典的内容比较多,今天只是简单地介绍一下,明天会继续补充字典相关的内容。 关于Windows的环境安装及配置,小白...

32040
来自专栏Golang语言社区

转--Golang语言-- Web 编程

1.golang的安装工具 1.1 GVM 第三方开发的Go多版本管理工具 2.golang环境变量 2.1 GOROOT=D:\go (golang 安装目录...

37580
来自专栏企鹅号快讯

看完这篇文章就能当Python工程师

有句话说得好,不想做程序员的司机不是好厨师!用十分钟看完小编整理的这篇文章,分分钟钟教你做司机...不是,是厨师...哦也不是,是程序猿! 在这里我还是要介绍一...

21850
来自专栏程序员互动联盟

【基础编程】聊聊C语言-变量的寿命

上一篇在编程世界的容器中,我们讲述了程序中的数据都存储在变量中,而变量根据数据类型的不同所占用的内存大小也不一样。但是计算机的内存大小是有限的不可能无限的分配下...

39470
来自专栏Golang语言社区

转--Golang语言-- Web 编程

1.golang的安装工具 1.1 GVM 第三方开发的Go多版本管理工具 2.golang环境变量 2.1 GOROOT=D:\go (golang 安装目录...

36660
来自专栏大前端_Web

关于Function.prototype.apply.call的一些补充

我们可以看到,ie9的document.getElementById是有Function.prototype上的方法的,所以说,IE9+的宿主对象它们继承了Ob...

19730
来自专栏杨龙飞前端

js中的this关键字,setTimeout(),setInterval()的执行过程

14350
来自专栏xingoo, 一个梦想做发明家的程序员

Log4j官方文档翻译(七、日志格式化)

apache log4j提供各种layout对象,然后根据自己指定的layouts对象转化日志信息。通常来说都是应用量身定制layout对象转换信息格式。 所有...

20350

扫码关注云+社区

领取腾讯云代金券