首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

何用PEP 8编写漂亮的Python代码

为什么编写可读的代码是Python语言的指导原则之一? 正如GuidovanRossum所说,“代码被读的频率比它所写的要多得多。”您可以花几分钟或一整天编写一段代码来处理用户身份验证。...每次返回到该文件时,您都必须记住该代码所做的事情以及编写它的原因,因此可读性很重要。 如果您是Python新手,那么在编写代码之后的几天或几周内,很难记住一段代码所做的事情。...当命名变量时,您可能会倾向于选择简单的、单字母小写名称,x...但是,除非你用x作为数学函数的论证,不清楚是什么x代表。...但是想象一下几天后回到这个代码。您可能已经忘记了您试图用这个函数实现什么,这将使您很难猜测您是如何缩写它的。 下面的例子要清楚得多。...如果需要在二进制运算符周围发生断线,+和*,它应该发生在操作员之前。这个规则源于数学。数学家们一致认为,在二元算子之前的破缺提高了可读性。比较以下两个例子。

96910

何用Python 编写知乎爬虫?So easy!

那么在 python 里怎么实现呢?...OK,我知道 python 的 set 实现是 hash——不过这样还是太慢了,至少内存使用效率不高。 通常的判重做法是怎样呢?Bloom Filter....可惜天下没有白吃的午餐,它的唯一问题在于,如果这个 url 不在 set 中,BF 可以 100%确定这个 url 没有看过。...但是如果这个 url 在 set 中,它会告诉你:这个 url 应该已经出现过,不过我有 2%的不确定性。注意这里的不确定性在你分配的内存足够大的时候,可以变得很小很少。...proxy_ip} return proxies 后续 使用日志模块记录爬取日志和错误日志 分布式任务队列和分布式爬虫 爬虫源代码:zhihu-crawler 下载之后通过 pip 安装相关三方包后,运行$ python

65600

何用Python编写一个Lisp解释器

,二是演示如何使用 Python 3 构造 Lisp 的一种方言 Schema,作者把自己的这个语言解释器称作 Lispy。...几年前,作者曾展示过如何用 Java 和 Common Lisp 写 Schema 解释器。而本次的目的很纯粹,作者会尽可能简明扼要为大家进行介绍。 了解这些有多重要呢?...列表的第一个元素决定了其含义是什么: 以关键词作为开头的列表, (if ...),是一种特殊形式,含义取决于关键词是什么。 以非关键词开头的列表, (fn ...),是函数的调用。...有许多用于词法分析的工具( Mike Lesk 和 Eric Schmidt 的 lex),但现在我们选择使用一个非常简单的工具:Python 的 str.split 函数。...Tony 认为最难的部分是表达式的解释器;需要的是 Lisp,他知道如何编写 C 程序来处理非 Lisp 字符,并将其链接到 Lisp 程序。

1.3K40

从新手到专家:如何用Python编写配置文件

预计阅读时间: 28分钟 设计软件时,我们通常要花费很多精力编写高质量代码。但这还不够,一个好的软件还应关注它的生态系统,例如测试,部署,网络等,这其中最重要的一方面就是配置管理。...在编写任何配置文件前,我们应该问问自己为什么需要一个外部文件?难道不能把它们变成代码里的常数吗?...实际上,著名的《十二要素应用》[1]已经为我们回答了这个问题: 一个验证应用程序的所有确配置是否均已正确地从代码中分解出来的试金石是:代码库是否随时可以在不损害任何证书的情况下开源。...如果你仍然不知道哪种配置文件是更好的选择,但在Python的上下文中考虑的话,那么答案将是 YAML 或 INI。大多数Python程序和软件包都很好地接收 YAML 和 INI。...这个想法是将具有相同类型的配置分组,在执行过程中可以选择其中之一。例如,你可以有一个“数据库”组,其中一个配置用于Postgres,另一个用于MySQL。

6.4K43

让你“老”绅士般编写 Python 命令行工具的开源项目:docopt

本系列文章默认使用 Python 3 作为解释器进行讲解。...若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二、使用模式 在上一篇文章中我们提到 docopt 是通过定义一个包含特定内容的字符串,也就是接口描述,来达到描述命令行功能的目的...c 长选项后可跟参数,通过 空格 或 = 指定,比如 --input ARG 等价于 --input=ARG 短选项后可跟参数,通可选的 空格 指定,比如 -f FILE 等价于 -fFILE 在下面这个例子中...在下面这个例子中,我们支持 create 和 delete 两个子命令,用来创建或删除指定路径。...""" from docopt import docopt arguments = docopt(__doc__) print(arguments) 直接指定 delete -r,输出如下: $ python3

63530

这个被忽略的细节,是编写优秀 Python 代码的必经之路

Python 中数据类型的问题 Python是一种动态类型编程语言,变量的类型是在运行时分配的,无需在赋值之前定义特定类型。...如果我们输入整数,就会得到一个整数 如果传入浮点数,我们得到一个浮点数 如果传入字符串,我们得到一个字符串 如果我们传入列表,我们得到一个列表 Python并不在乎你传入a和b的参数。...类型提示介绍 在 Python 中,类型提示是可选的。如果不使用它们,Python 也能正常运行。然而,对于其他开发者来说,类型提示能让我们的代码更易读。...类型提示的一些优势 开发人员能够迅速确定函数或方法应使用的数据类型 其他开发人员能够快速了解函数或方法应返回的数据类型 减少了变量数据类型的猜测和确认的时间 提高了代码的整体可读性 尽管类型提示是可选的,但它是编写优秀可读代码的必备条件...在编写优秀的Python代码时,使用类型提示是至关重要的,特别是在开发大型企业应用程序并需要与其他开发人员合作时。

13710

这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?

而由于 Python 的流行,也从而产生了许多由 Python 结合那些优秀的 GUI 工具集编写的应用程序。 今天我们简单分享一些 Python 的图形化界面库及其相关资源,供广大学习者参考。...用 Tkinter 编写交互日记系统 https://wp-lai.gitbooks.io/learn-python/content/1sTry/tkinter.html ?...该库适用于 Python2 和 Python3,能在所有桌面平台运行。...PySide开发图形化界面 http://www.pythontab.com/html/2013/pythongui_1216/629.html 3、wxPython wxPython 使用 C++ 编写...而且,Kivy 可以看作许多模块的超集:许多知名的模块 PyGame、SDL、GStreamer 都是 Kivy 的组成部分。Kivy 的 API更加高级、统一,方便使用。

4.2K70

独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码&链接)

如果我们没有将一个机器学习项目充分地展示出来,那么这个项目就不算真正地被完成。...更别提如何用多种方式去实现同一件事了,这会让数据科学同胞感到更加困惑,毕竟对他们来说,Web开发只是一项次要的技能。 那么,我们注定要学Web框架吗?...花点时间来感受一下这个工具的力量。 Streamlit Hello World Streamlight旨在利用简单的Python来简化应用程序的开发。...Streamlit还有一些内置的图表类型,st.line_chart 和st.area_chart等都能在Streamlit中运行。...在我看来,最好的方法就是使用Magic命令,Magic命令允许您像注释一样轻松地编写标记,也可以使用st.markdown命令。

1.9K10

在Win上做Python开发?当然是用官方的MS Terminal和VS Code了

Python 开发,并且已经在系统上安装了某种版本的 Python Python 2.7、Python 3.6/3.7、Anaconda 或其他)。...这足以说明这个项目非常受关注,在社区的开源改进下,这个工具一定挺好用。 ?...VS Code 每月更新,你可以在微软 Python 博客中了解更新信息。任何用户都可以克隆微软的 VS Code Github 仓库并贡献自己的代码。...假如我们编写了一个计算器程序,该程序通过艾兹格·迪科斯彻(Edsger Dijkstra)调度场算法的一种变体来解析中缀符号(infix notation)编写方程式。...作者在 unittest 框架中编写了一个用于方程式 eval 库的单元测试,你可以在这个例子中使用它。

4.4K20

在Win上做Python开发?当然是用官方的MS Terminal和VS Code了

Python 开发,并且已经在系统上安装了某种版本的 Python Python 2.7、Python 3.6/3.7、Anaconda 或其他)。...这足以说明这个项目非常受关注,在社区的开源改进下,这个工具一定挺好用。 ?...VS Code 每月更新,你可以在微软 Python 博客中了解更新信息。任何用户都可以克隆微软的 VS Code Github 仓库并贡献自己的代码。...假如我们编写了一个计算器程序,该程序通过艾兹格·迪科斯彻(Edsger Dijkstra)调度场算法的一种变体来解析中缀符号(infix notation)编写方程式。...作者在 unittest 框架中编写了一个用于方程式 eval 库的单元测试,你可以在这个例子中使用它。

4.7K20

Win 平台做 Python 开发的最佳组合:MS Terminal 和 VS Code

Python 开发,并且已经在系统上安装了某种版本的 Python Python 2.7、Python 3.6/3.7、Anaconda 或其他)。...这足以说明这个项目非常受关注,在社区的开源改进下,这个工具一定挺好用。 ?...VS Code 每月更新,你可以在微软 Python 博客中了解更新信息。任何用户都可以克隆微软的 VS Code Github 仓库并贡献自己的代码。...假如我们编写了一个计算器程序,该程序通过艾兹格·迪科斯彻(Edsger Dijkstra)调度场算法的一种变体来解析中缀符号(infix notation)编写方程式。...作者在 unittest 框架中编写了一个用于方程式 eval 库的单元测试,你可以在这个例子中使用它。

4.5K50
领券