Python 高级用法2024 年 8 月 29 日 | 5 分钟阅读 在本教程中,我们将学习如何以高级方式使用 Python 来解决常见的编码问题。我们将遵循两种方法——基本方法和高级方法。 此处提出的所有编码问题均基于 Advent of Code 挑战谜题。这些问题通常用于各种编码挑战和评估,包括求职面试,并在 Advent of Code 挑战的多个迭代中被重复使用。我们不会提供 Advent of Code 谜题的完整解决方案,而是专注于谜题中的特定部分,这些部分可以很好地指示开发者的技能水平。这将有助于区分没有经验和有经验的开发人员。 1. 使用 Enum 而不是 If-elif-else在这个问题中,我们将解决石头剪刀布游戏。该问题涉及为三种形状(石头、纸、剪刀)分配不同的分数(1、2 和 3)。下面提供了两种不同的方法来解决此问题。让我们来理解以下示例。 输入 X Y Z 预期结果 1 2 3 示例 - 基本方法 示例 - 高级方法 解释 - 上面的代码片段定义了一个名为 RockPoints 的枚举类,其中包含三个成员 X、Y 和 Z,每个成员都有一个关联的整数值(分别为 1、2 和 3)。rock_paper_scissor() 函数接受一个字符串 shape 作为输入,并返回与输入字符串同名的 RockPoints 成员的相应整数值。 2. 使用查找表而不是字典来重塑众所周知,字母有不同的值。小写字母 a-z 从 1 到 26,大写字母 A-Z 从 27 到 52。使用像 RockPoints 这样的枚举类可能会产生大量代码,尤其是在存在许多可能值的情况下。使用查找表是一种更实用的方法。查找表将每个可能的输入映射到其相应的输出值,从而无需复杂的类层次结构或条件语句即可快速轻松地检索所需值。 让我们理解下面的例子。 示例 - 输入 输出 3 52 1 示例 - 基本方法 示例 - 高级方法 解释 - letter_value() 函数接受一个字符串 ltr 作为输入,并返回一个整数,表示给定字母在英文字母表中的字母位置。以下是其工作原理:
然后将生成的整数作为函数的输出返回。 例如,letter_value('A') 将返回 1,而 letter_value('Z') 将返回 26。请注意,该函数假定输入字母是有效的英文字母;否则,可能会引发异常。我们也可以使用查找表来解决石头、剪刀、布问题。 示例 - 3. 高级切片在这个问题中,我们需要从行中读取字母。在这种情况下,应选择给定字符串中的每第四个字母,从第一个字母开始。虽然大多数 Python 程序员都熟悉字符串和列表切片,但通过指定切片步长来实现高级切片是可能的。 输入 [D] 输出 [' D ', 'NC', 'ZMP'] 示例 - 基本方法 示例 - 高级方法 4. 使用类属性存储类实例在 Python 中,类属性是类所有实例共享的变量。要将类实例存储在类属性中,我们可以将类属性定义为列表或字典,然后在创建每个实例时将其添加到该列表或字典中。让我们来理解以下示例。 示例 - 输出 [<__main__.MyClass object at 0x7f3c978c4f50>, <__main__.MyClass object at 0x7f3c978c5110>, <__main__.MyClass object at 0x7f3c978c5150>] 解释 - 在此示例中,MyClass 类有一个名为 instance 的类属性,该属性最初是一个空列表。在 __init__ 方法中,每个类实例都使用 append() 方法将自己添加到 instances 列表中。最后,在创建了一些类的实例后,打印 instances 列表以显示类的所有实例。 5. 自我记录表达式在此方法中,我们定义了自我记录表达式,其中我们使用 print(f"{x = }) 来打印要打印的内容,并指定了打印的内容。让我们来理解以下示例。 输入 x = 10 * 2 y = 3 * 7 max(x,y) 输出 x = 20 y = 21 max(x,y) = 21 示例 - 基本方法 示例 - 高级方法 6. 使用推导式和 split 有效地读取文件假设我们有一个文件,其中包含用 '/n' 分隔的数字。我们可以用更少的代码行有效地读取它们。让我们来理解以下示例。 示例 - 输入 10 20 30 50 60 70 输出 [[10, 20, 30], [50, 60 70]] 示例 - 基本方法 示例 - 高级方法 正如我们所见,我们将之前的示例中的 10 行代码减少到了两行,而没有损失明显的理解性或可读性,并且获得了性能提升。 结论本教程包含了一些区分经验丰富的开发人员和初级开发人员的重要技术。这些技巧不会让任何初级开发人员一夜之间成为经验丰富的开发人员,但可以帮助我们了解作为初级开发人员如何改进。 下一个主题Python 中的生日提醒应用程序 |
您想在重命名文件夹中的多个文件时使用特定的命名模式。手动过程可能耗时且容易出错。您正在考虑使用 Python 创建自定义批量文件重命名解决方案以自动化文件重命名过程。本教程适合您...
18 分钟阅读
大数据、数据科学和集群处理最流行的两种编程语言是 Python 和 Scala。Python 是一种高级的面向对象解释型编程语言。它是一种动态结构化编程语言。它支持多种编程框架,包括面向对象、函数式和过程式模型,...
阅读 3 分钟
Python 是一种强大而流行的编程语言,常用于各种任务,包括数据分析、Web 开发、人工智能等。字典是一种无序的键值对集合,是 Python 的基本数据结构之一。我们将讨论遍历...
阅读9分钟
Python 是将技术提升到一个全新水平的计算机语言之一。这种通用编程语言已广泛应用于各种行业,包括软件工程、数据科学、自然语言处理和人工智能。Python 2 和 Python 3 是...
阅读 3 分钟
? Pygal 是什么? Pygal 是 Python 中的一个开源库,是数据可视化的最重要库,用于为各种数据集制作高度交互式的图表。它是一个图形和用户界面库,提供各种可用于...的函数。
阅读 3 分钟
在本教程中,我们将探讨一种名为凯撒密码的加密方法。它是密码学的一部分。简介 在这种技术中,每个字符都被一个字母替换,该字母位于其在字母表中之后或之前的某个固定数字位置。例如 - 字母 B 被替换为...
阅读 4 分钟
本文将演示如何使用 PyQt5 构建倒计时计时器应用程序。使用计时器(一种用于测量特定时间间隔的特殊时钟)时,我们必须从给定时间倒计时直到它达到零。实现 GUI 的步骤...
5 分钟阅读
在本教程中,我们将学习如何使用 Python 代码生成 HTML。我们将学习 tinyhtml 模块并生成一些 HTML。创建 HTML 可能非常繁琐和具有挑战性,有时需要花费大量时间进行调试,并且容易出错。而...
阅读 3 分钟
Python 简介在代码中引发异常时会返回 Traceback。如果我们第一次看到 Traceback 或不知道它传达的信息,那么它的输出可能会令人难以抗拒。但是,Traceback 在...
阅读 13 分钟
在我们开始使用 Python 编程语言构建区块链之前,让我们回到最初。2008 年,一位(或多位)作者以中本聪的笔名发布了一篇白皮书,描述了一种纯粹的点对点电子现金版本。独家介绍...
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India