iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用Python进行编码的技巧有哪些
  • 580
分享到

用Python进行编码的技巧有哪些

2023-06-16 13:06:14 580人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“用python进行编码的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用Python进行编码的技巧有哪些”吧!1. 可读性的重要性程序必须为了人们能够读懂而编写,其次

本篇内容主要讲解“用python进行编码的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用Python进行编码的技巧有哪些”吧!

1. 可读性的重要性

程序必须为了人们能够读懂而编写,其次使机器能够执行。

首先,遵循编程规范,使程序易于阅读。编程规范是经验丰富的程序员在编写其代码时所遵循的。除忽略这些规范外,没有任何其他方式可以更快地证明您是位“新手”。其中一些规范特定于Python;其他则可由计算机程序员用于所有语言中。

用Python进行编码的技巧有哪些

从本质上讲,可读性一种特征,决定着他人理解您代码某些部分的难易程度(而并非您本人!)。

举例来说,我曾经不习惯用垂直对齐方式来编写代码,也不习惯用起始分隔符对齐函数参数。

# No, to avoid:  func = long_function_name(var_one, var_two,         var_three, var_four)#Yes, func = long_function_name(var_one, var_two,                            var_three, var_four)

查看Python代码样式指南(https://www.python.org/dev/peps/pep-0008/)中的其他示例,并确定哪个示例看起来最佳。

我们经常做的另一件重要事情是效仿曾看过或写过的程序,这也是为何接触可读性强的程序对于编程学习十分重要的原因。

2. 避免无用条件

通常,一串if & elif & …. &  else长条件是代码需要重构的标志。这些条件使您的代码冗长,且十分难于解释。有时这些代码可以被很容易地替换,例如,我曾经常这样做过:

def f():     if condition:         return True     else:         return False

这真是愚蠢!该函数返回一个布尔值,那么为什么还要首先使用if块呢?正确的做法是:

def f():        return condition

在一项Hackerrank挑战中,参赛者需要编写一个函数来确定给定的年份是否为闰年。在公历中,须考虑三个标准来确定闰年:

  • 该年份可被4整除,为闰年,除非:

  • 该年份同样可被100整除,不是闰年,除非:

  • 该年份也可被400整除。为闰年

在这项挑战中,不要考虑ifs和elses条件,仅做如下即可:

def is_leap(year):     return year % 4 == 0 and (year % 400 == 0 or year % 100 != 0)

3. 适当使用空白

  • 切勿混淆键盘制表定位键与空格键

  • 函数间进行一次换行

  • 等级间进行两次换行

  • 在程序库、列表、元组、自变量列表中的自变量的“,”后输入空格,以及在程序库的“:”后输入空格。

  • 在分配和比较前后放置空格(列表中的自变量除外)

  • 括号前后或参数列表前无空格

def function(key, value=0):      """Return a dictionary and a list..."""      d = {key: value}      l = [key, value]      return d, l

4. 文档字符串和注释

  • 文档字符串= 如何使用代

  • 注释=为何代码能(合理)执行和如何执行

文档字符串解释了如何使用代码:

  • 解释函数用途,即使对您而言,这个用途十分明显。但以后,其用途对他人来说,不一定同样明显。

  • 描述期望参数、返回值及例外情况。

  • 如果该类函数与单个Caller紧密耦合,请提及调用函数。

这些注释向代码维护人员说明维护需求。下面的示例也包括给自己的注释,如:

  • # !!! BUG: …

  • # !!! FIX: This is a hack

  • # ??? Why is this here?

编写良好的文档字符串和注释是您的责任,因此请始终使它们保持最新!在进行更改时,请确保注释和文档字符串与代码一致。

您将在“文档字符串惯例”

(Https://www.python.org/dev/peps/pep-0257/)中找到专门用于文档字符串的详细PEP

5. 变量和分配

在其他编程语言中:

c = a a = b b = c

在Python中,最好将分配项放入一个代码行中:

b, aa = a, b

您可能已经看到代码,但您知道它如何执行吗?

  • 逗号是构造元组的句法。

  • 在右侧创建一个元组(元组包)。

  • 元组是左侧的目标(元组拆包)。

其他示例:

result = ''  for s in colors:      result += s

在结构化数据循环中很有用(已保留上述变量名):

result = ' '.join(colors)

也可以采取相反的方式,只需确保左右具有相同的结构即可:

>>> jan, (gname, gtitle, gphone) = people  >>> gname  'German'  >>> gtitle  'GBT'  >>> gphone  'unlisted'  >>> jan  ['Jan', 'Gomez', '+1-888-222-1546']

6. 列表拼接&合并

首先从字符串列表开始:

colors = ['red', 'blue', 'green', 'yellow']

我们想将这些字符串连接在一起以创建一条长链。特别是当子字符串的数量很大时,请避免这样做:

result = ''  for s in colors:      result += s

这样做非常慢。且占用大量内存和性能。总和将累加、存储、然后继续进行每个中间步骤。

取而代之,执行以下操作:

colors = ['red', 'blue', 'green', 'yellow'] print ('Choose', ', '.join(colors[:-1]), \       'or', colors[-1])>> Choose red, blue, green or yellow

join()函数可一次完成整个副本。当仅处理几个字符串时,它与其他函数没有什么区别。却能使您养成使用最佳函数构建长链的习惯,因为面对成百上千的字符串,使用join()函数的确大有不同。

下面是使用join()函数的一些技巧。如果想使用空格作为分隔符:

# Do this :     # And not this :  if x:             if x == True:     pass                  pass# Do this :     # And not this :  if items:         if len(items) != 0:      pass                pass# and especially not that :          if items != []:                 pass

或逗号和空格:

result = ', '.join(colors)

为了使句子语法正确,除最后一个值之外的每个值之间都使用逗号(人们更喜欢使用“或”)。拆分列表的语法将完成其余工作。[:-1]返回除最后一个值外的所有内容,我们可以将其与逗号连接。

colors = ['red', 'blue', 'green', 'yellow'] print ('Choose', ', '.join(colors[:-1]), \       'or', colors[-1])>> Choose red, blue, green or yellow

7. 测试真实条件

就布尔值而言,利用Python既简洁又快速:

# Do this :     # And not this :  if x:             if x == True:     pass                  pass# Do this :     # And not this :  if items:         if len(items) != 0:      pass                pass# and especially not that :          if items != []:                 pass

8. 尽可能使用枚举函数

枚举函数获取一个列表并返回数对(指数,数项):

items = ['zero', 'one', 'two', 'three']  >>> print list(enumerate(items))  [(0, 'zero'), (1, 'one'), (2, 'two'), (3, 'three')]

使用列表显示结果是必要的,因为枚举函数是一种惰性函数,仅在要求时才一次生成一个数项(一对)。for循环需要这种机制。一次Print函数不会得到任何结果,但必须拥有要显示的完整消息。因此,在使用Print函数之前,我们应自动将生成器转换为列表。

因此,使用下面的循环效果更佳:

>>>   [(x, y) for x in (1, 2, 3, 4) if x % 2 == 0        for y in ['a', 'b'] if y == 'b'] [(2, 'b'), (4, 'b')]

使用枚举函数的版本比其他两个版本更短,更简单。以上为表明枚举函数返回迭代器的示例(生成器是迭代器的一种)。

9. 列表推导式

使用for和if的传统方式:

让我们对小于100的数字平方求和:   # With a loop :  total = 0  for num in range(1, 101):      total += num * num

使用列表推导式:

new_list = [fn(item) for item in a_list if condition(item)]

列表推导式清晰直接。在同一个列表推导式中,可以包含几个for循环和if条件,但如果超过两个或三个,或条件十分复杂,我建议您使用普通的for循环。

例如,从0至9的二次幂列表:

>>> [n ** 2 for n in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

上个列表中的奇数列表:

>>> [n ** 2 for n in range(10) if n % 2]  [1, 9, 25, 49, 81]

更多示例:

>>>   [(x, y) for x in (1, 2, 3, 4) if x % 2 == 0         for y in ['a', 'b'] if y == 'b']  [(2, 'b'), (4, 'b')]

10. 生成器表达式

让我们对小于100的数字平方求和:

让我们对小于100的数字平方求和:   # With a loop :  total = 0  for num in range(1, 101):      total += num * num

还可以使用sum函数,通过建立正确的序列来为我们更快地完成工作。

 # With a list comprehension :  total = sum([num * num for num in range(1, 101)])# With a generator expression :  total = sum(num * num for num in xrange(1, 101))

生成器表达式类似于列表推导式,只是在计算时属于懒惰型。列表推导式一次计算整个结果,然后将其存储在列表中。必要时,生成器表达式一次计算一个值。当序列很长并且生成的列表只是中间步骤而不是最终结果时,生成器表达式特别有用。

例如,如果我们必须对数十亿个整数的平方求和,使用列表推导会达到内存的饱和,但使用生成器表达式不会有任何问题。尽管这需要一段时间!

total = sum(num * num for num in range(1, 1000000000))

二者在语法上的差异是列表推导式带有方括号,而生成器表达式则没有。生成器表达式有时需要括号,因此您应始终使用它们。

简而言之:

  • 当期望结果为列表时使用列表推导式。

  • 当列表仅为中间结果时使用生成器表达式。

到此,相信大家对“用Python进行编码的技巧有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 用Python进行编码的技巧有哪些

本文链接: https://www.lsjlt.com/news/283841.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用Python进行编码的技巧有哪些
    本篇内容主要讲解“用Python进行编码的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用Python进行编码的技巧有哪些”吧!1. 可读性的重要性程序必须为了人们能够读懂而编写,其次...
    99+
    2023-06-16
  • 有哪些Python编码常用技巧
    这篇文章主要介绍“有哪些Python编码常用技巧”,在日常操作中,相信很多人在有哪些Python编码常用技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python编码常用技巧”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • Python编程代码技巧有哪些
    本篇内容介绍了“Python编程代码技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 提供了一组独特的工具和语言特性来使...
    99+
    2023-06-17
  • Python源代码编制技巧有哪些
    本篇内容介绍了“Python源代码编制技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PyDev 就能显示出一个超链接,这样您可以在...
    99+
    2023-06-17
  • Python的编程技巧有哪些
    以下是一些Python编程的技巧:1. 使用列表推导式:列表推导式是一种简洁的方式来创建列表。它可以通过迭代一个可迭代对象,并根据条...
    99+
    2023-09-25
    Python
  • 有哪些Python技巧用于编写更好的代码
    这篇文章主要讲解了“有哪些Python技巧用于编写更好的代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Python技巧用于编写更好的代码”吧!1. F StringF字符串为将Py...
    99+
    2023-06-16
  • Python中的字节编码和解码技巧有哪些?
    Python中的字节编码和解码技巧有哪些?字节编码和解码是我们在处理文本数据时常常遇到的问题。在Python中,有许多内置的函数和模块可以帮助我们进行字节编码和解码操作。本文将介绍几种常见的字节编码和解码技巧,并给出相应的代码示例。使用en...
    99+
    2023-10-22
    技巧 解码 字节编码
  • Python编程常用技巧有哪些
    这篇文章主要介绍“Python编程常用技巧有哪些”,在日常操作中,相信很多人在Python编程常用技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python编程常用技巧有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • python代码防御性编程的技巧有哪些
    本篇内容主要讲解“python代码防御性编程的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python代码防御性编程的技巧有哪些”吧!1 什么是防御...
    99+
    2024-04-02
  • Python有哪些技巧能编写更好的代码
    这篇文章主要讲解了“Python有哪些技巧能编写更好的代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些技巧能编写更好的代码”吧!技巧01-变量的多重分配Python允许我...
    99+
    2023-06-16
  • 编写更简洁Python代码的技巧有哪些
    这篇文章主要介绍“编写更简洁Python代码的技巧有哪些”,在日常操作中,相信很多人在编写更简洁Python代码的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写更简洁Python代码的技巧有哪些...
    99+
    2023-06-16
  • 有哪些提高Python编码水平的小技巧
    本篇内容介绍了“有哪些提高Python编码水平的小技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 分割序列常见的序列类型有列表、元组...
    99+
    2023-06-16
  • 编写Python小技巧有哪些
    本篇内容主要讲解“编写Python小技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编写Python小技巧有哪些”吧!1. List:all_equal功能实现:检验一个列表中的所有元素...
    99+
    2023-06-16
  • Python编辑技巧有哪些呢
    Python编辑技巧有哪些呢,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对多次接触到Python编辑的用户和学者来说,了解Python的概念是非常重要的,那么就先说一下什...
    99+
    2023-06-17
  • html代码编写的技巧有哪些
    本文小编为大家详细介绍“html代码编写的技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“html代码编写的技巧有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1....
    99+
    2024-04-02
  • 有哪些技巧编写出更好的Python代码
    这篇文章主要讲解了“有哪些技巧编写出更好的Python代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些技巧编写出更好的Python代码”吧!1. 使用enumerate()而不是ra...
    99+
    2023-06-16
  • 进行C++转换技巧有哪些
    今天就跟大家聊聊有关进行C++转换技巧有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。由UML向C++ 转换而生成的C++ 代码的一些相关技巧,您可以根据需要选择自己想要的信息,...
    99+
    2023-06-17
  • PHP安全编码的技巧有哪些
    这篇文章主要介绍了PHP安全编码的技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP安全编码的技巧有哪些文章都会有所收获,下面我们一起来看看吧。PHP 安全编码总结笔记SQL注入: 代码中的 HTT...
    99+
    2023-07-05
  • HTML代码编写技巧有哪些
    这篇文章主要为大家展示了“HTML代码编写技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML代码编写技巧有哪些”这篇文章吧。1. 一定要闭合HTML标签在以往的页面源代码里,经常看...
    99+
    2023-06-08
  • 有哪些有用的Python技巧
    本篇内容介绍了“有哪些有用的Python技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 函数连续调用def add(...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作