首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以最有效的方式编写和组织代码?

如何以最有效的方式编写和组织代码?
EN

Stack Overflow用户
提问于 2021-03-02 04:21:07
回答 3查看 44关注 0票数 0

几周前,我需要一个爬虫来收集和整理数据,所以我开始学习python。同一天,我写了一个简单的爬虫,但代码看起来丑陋得要死。主要是因为我不知道如何做某些事情,也不知道如何正确地搜索它们。示例:不是删除

和“在一句话里我做到了

代码语言:javascript
运行
复制
extra_nr = extra_nr.replace("'", '')
extra_nr = extra_nr.replace("[", '')
extra_nr = extra_nr.replace("]", '')
extra_nr = extra_nr.replace(",", '')

因为我不能做列出对象的事情,当我做str(列表对象)时,它看起来像

“这个”,“还有这个”

..。现在,我正在创建不和谐机器人,它将上传数据,我提供给它到谷歌电子表格。代码又长又难看。启动机器人大约需要2-3秒(如果这是正常的,我想我写得越多,启动它需要的时间就越长,这让我认为代码是垃圾)。它有时起作用,有时不起作用。

我的问题是

我怎么知道我写的是不是好东西?如果我只是像示例中那样不断添加东西,它会对我的程序产生什么影响呢?如果我有一个非常长的代码,我是否要拆分它,并只在需要的时候调用它的部分,或者它是如何工作的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-02 04:48:33

要精通Python并编写优秀的代码,编写大量的Python并阅读他人的代码。学习针对不同问题类型的多种方法,并了解使用哪种方法以及何时使用。这是随着时间的推移需要大量练习的东西。至于参考资料,我强烈推荐“用Python自动化无聊的东西”这本书。

至于您的代码示例,您可以使用

为此:

代码语言:javascript
运行
复制
def strip(my_string):
    bad_chars = [*"[],'"]
    return my_string.translate({ord(c): None for c in bad_chars})

在给定转换表的情况下对字符串进行逐个字符的转换,因此您可以创建一个包含不希望设置为的字符的小型转换表

..。

您不需要的字符列表是通过解压(splatting)字符串创建的。

代码语言:javascript
运行
复制
>>> [*"abc"] == ["a", "b", "c"]
True

另一种选择是使用理解:

代码语言:javascript
运行
复制
def strip(my_string):
    bad_chars = [*"[],'"]
    return "".join(c for c in my_string if c not in bad_chars)

这里我们使用理解格式

要构建新的列表,请执行以下操作

%s来自

,只是指定在字符出现在

..。然后,我们将剩余的字符列表连接到一个没有指定字符的字符串中。

票数 0
EN

Stack Overflow用户

发布于 2021-03-02 04:30:23

通过阅读(或收听) Python最佳实践,您肯定会很快提高,这些参考资料包括

真正的Python

跟我聊聊Python

..。

同时,我建议开始使用一些代码分析器,比如

pylint

强盗

作为常规工作流程的一部分。

无论如何,欢迎来到Python的世界,尽情享受!:-)

票数 0
EN

Stack Overflow用户

发布于 2021-03-02 07:44:53

您可以使用maketrans()定义要删除的字符(第三个参数):

代码语言:javascript
运行
复制
def clean(S): return S.translate(str.maketrans("","","[],'"))

clean("A['23']") # 'A23'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66429104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档