致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 ...
随机推荐
- JeeSite | 保存信息修改记录封装
前面写过两篇关于“保存信息修改记录”的内容,分别如下: JeeSite | 保存信息修改记录 JeeSite | 保存信息修改记录续 回顾 第一篇文章通过类字段的比较返回一个有字段值不 ...
- QLineEdit限制数据类型——只能输入浮点型数
前言 最近做了一个小的上位机,要通过串口来下发几个时间参数,为了防止误输入,产生不必要的麻烦,我把输入范围限制在0-680的浮点型数据,支持小数点后2位.学习了一下QLineEdit类是如何限制输入类 ...
- 为Bootstrap Modal(模态框)全局添加拖拽操作
在js中绑定方法 $(document).on("show.bs.modal", ".modal", function(){ $(this).draggable ...
- 关于hover与after,before已及first-letter,first-line的联用
0920自我总结 关于hover与after,before已及first-letter,first-line的联用 一.写法 元素:hover::after{样式} 元素:hover::before{ ...
- javaWeb核心技术第六篇之BootStrap
概述: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 作用: 开发响应式的页面 响应式:就是一个网站能够兼容多个终端 节约开发 ...
- ES6-Symbol的用法 ,symbol在对象中的应用,改变值
ES6-Symbol的用法,,symbol在对象中的应用,改变值 let a = new String; let b = new Number; let c = new Boolean; let d ...
- java 读取 excel 表格内容
一.添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ar ...
- python进程池和进程锁
1.进程锁:from multiprocessing import Process, Lock def f(l, i): l.acquire() print('hello world', i) l.r ...
- 微信小程序根据生日获取年龄
// 根据出生日期计算年龄周岁 传参格式为1996-06-08 // 根据出生日期计算年龄周岁 传参格式为1996-06-08 function getAge(strBirthday) { var r ...
- 高通lk屏幕向kernel传参
LK把相关参数报存到cmdline上: 在Bootable\bootloader\lk\dev\gcdb\display\gcdb_display_param.c上gcdb_display_cmdli ...