致Python初学者的六点建议
Python是最容易学习的编程语言之一,其语法近似英语。通常,初学者只会遇到一些小麻烦,如强制缩进、在函数中使用self等。
然而,当开始阅读、复制和编辑他人代码时,麻烦就接踵而至了。
这里,我将解释五个关于Python的概念,这些概念将有助于初学者修改他人代码。这些建议通过总结Python开发新手在研讨会上遇到的问题以及分析开发者社区的在线讨论编写而成的。这些开发者社区主要关注API的使用,图像处理以及RICOH THETA相机的元数据(文本)处理等。其中,较为典型的开发者具有Java、C、JavaScript或bash的中级编程经验,但在Python方面仍是新手。
他们可以自己编写Python代码来解决问题,然而在阅读他人代码时往往会遇到问题。
以下是帮助大家更好地理解Python的五点建议。
1. * args和 kwargs是函数参数**
如果您查看Python模块或者这些模块的相关文档,您可能会看到*args和**kwargs。它们看起来像C语言里的指针,实际上并非如此。*args只是函数的参数列表。**kwargs是关键字参数的字典。
*args示例:

输出:

**kwargs示例:

输出:

args和kwargs示例的代码位于文件args_example.py,可在此处获取。
2.列表解析是使用循环时的一种快捷方式
列表解析是返回列表的一种简便方法。在代码中,for循环写作for number in args。
当循环中的表达式为num **2时,返回的列表值将为参数的平方。

输出:

您可以在列表解析的末尾添加过滤器以过滤输出结果。例如,仅对偶数进行平方,可以采用如下过滤方式:

输出:

列表解析并未对for循环添加任何特殊的功能,采用这种方式是因为它更为简短,并且在习惯语法后会使代码更易于阅读。不过有些开发者会过度使用列表解析,反而使代码更难理解。这一点需要注意,复杂的列表解析和多个循环嵌套并非最佳实践。
如果您刚开始学习Python,并遇到一个复杂的for循环,可以在网上搜索列表解析并查看如下三个组件的语法:
表达式
for循环
过滤器
3. F-strings可以替代.format()
Python非常适合处理字符串,至少提供了3到4种将变量插入字符串的方法。这些方法大多数都较为笨重,但是有一种非常酷。
字符串连接
之前您也许写过如下代码:

输出:

这种写法难以阅读,并且容易出现错误。即使存在语法高亮,仍会出现缺少空格的情况。
字符串替换
字符串替换可以帮助减少错误。

输出:

使用字符串替换的示例位于文件format_example.py,可在此处获取。
字符串格式
一个更好的方式是使用.format()方法,如下所示:

尽管.format在字符串连接方面有很大地提升,但处理上仍然很笨重。
F-strings
要使用f-strings,首先需要将Python升级至3.6或3.7版本。


4. Lambda函数是匿名的
Python lambda函数是一种快捷方式。尽管可以将其指定为某变量,类似于普通函数,但通常情况下使用如下语法写作匿名函数。

输出:

如同Python中的多数快捷方式,lambda函数并不会带来新的功能。尽管如此,使用此语法可以减少代码的复杂程度。
5. 使用装饰器来扩展Python函数
使用装饰器时,通常会在一个函数上方标注@decorator_name。

装饰器可以任意命名,例如@panda。在使用装饰器时,您无需了解如何创建自己的装饰器以便使用,可以参考Django的http装饰器的相关文档。

import这行代码允许您使用预先构建好的装饰器。在这种情况下,您只需了解@require_http_methods为您创建的函数my_view()添加的额外功能即可。
补充建议
由于我主要和一群专注于特定问题的人讨论Python编程,这里,我希望得到适用于新手程序员的其他建议,以帮助他们更好地在开发者社区进行交流。
致Python初学者的六点建议的更多相关文章
- 致 Python 初学者们!
前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长.在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫.我非常理解你们所面临的处 ...
- 致Python初学者:Anaconda入门使用指南
http://python.jobbole.com/87522/ Anaconda使用总结 pasting
- 致Python初学者,Python常用的基础函数你知道有哪些吗?
Python基础函数: print()函数:打印字符串 raw_input()函数:从用户键盘捕获字符 len()函数:计算字符长度 format(12.3654,'6.2f'/'0.3%')函数:实 ...
- 写给已有编程经验的 Python 初学者的总结【转】
当我开始学习Python的时候,有些事我希望我一早就知道.我花费了很多时间才学会这些东西.我想要把这些重点都编纂到一篇文章当中.这篇文章的目标读者,是刚刚开始学习Python语言的有经验的程序员,想要 ...
- 写给已有编程经验的 Python 初学者的总结
当我开始学习Python的时候,有些事我希望我一早就知道.我花费了很多时间才学会这些东西.我想要把这些重点都编纂到一篇文章当中.这篇文章的目标读者,是刚刚开始学习Python语言的有经验的程序员,想要 ...
- 致Java初学者
致Java初学者 精心整理资料点击获取 前言 能看到这篇文章的朋友,应该都或多或少的了解Java,也许你现在是个菜鸟还在成长的路上.再此期间你一定遇到了很多困惑疑虑,对未来的学习方向感到很迷惑.作 ...
- 给Python初学者的一些编程技巧
展开这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下交换变量 x = 6y = 5 x, y = y, x print x>>&g ...
- python 初学者
明确学习目标,不急于求成 当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长 期的:同时,学习不应该被 ...
- Python初学者之网络爬虫(二)
声明:本文内容和涉及到的代码仅限于个人学习,任何人不得作为商业用途.转载请附上此文章地址 本篇文章Python初学者之网络爬虫的继续,最新代码已提交到https://github.com/octans ...
随机推荐
- lxml
lxml导入 Element类 节点List相关操作 节点属性相关操作 节点文本相关操作 节点遍历相关操作 节点序列化 ElementTree类 解析文件和字符串 对象解析 增量解析 事件驱动解析 命 ...
- HTML中跨域请求天气粗略效果
HTML中跨域请求天气粗略效果 html+css部分: <style> table{ border:1px red solid; border-collapse: collapse; ma ...
- go语言之goto语句和函数和defer语句
1.goto关键字 import "fmt" func main() { for i := 0;i <11;i++{ if i == 2{ //关键字,goto跳转到某个位置 ...
- 深入理解 Java 数组
- 谁说程序员不浪漫?Python导出微信聊天记录生成爱的词云图
明天又双叒叕是一年一度的七夕恋爱节了! 又是一波绝好的机会!恩爱秀起来! 购物车清空!礼物送起来!朋友圈晒起来! 等等! 什么?! 你还没准备好七夕礼物么? 但其实你不知道要送啥? 原来又双叒叕要 ...
- Assign a Custom Image 设置自定义图标
In this lesson, you will learn how to associate a business class with a custom image. This image wil ...
- 一文学会JVM性能优化
实战性能优化 1 重新认知JVM 之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图. 执行引擎:用于执行JVM字 ...
- 最常见的 Git 问题和操作清单汇总
最常见的 Git 问题和操作清单汇总 引言 本文整理自工作多年以来遇到的所有 Git 问题汇总,之前都是遗忘的时候去看一遍操作,这次重新整理了一下,发出来方便大家收藏以及需要的时候查找答案. 一.必备 ...
- volatile简记
volatile指出变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错,也就是在使用变量时必须从它的地址中重新读取.
- 微信小程序如何做金额输入限制
引言:金额输入时,需求如下: 1)首位不能出现0或者小数点(.) 2)仅保留两位小数 3)仅保留一个小数点(.),不允许出现多个. 1.wxml核心代码: <!-- 1.adjust-posit ...