【问题标题】:Should I Start With Python 3.0? [closed]我应该从 Python 3.0 开始吗​​? [关闭]
【发布时间】:2010-11-16 09:43:16
【问题描述】:

最近我决定扩展我的编程视野并学习 Python 编程语言。虽然我在大学的课程和工作中的一两个项目中使用了一点 Python,但我绝不是专家。我的问题如下:我应该使用 2.x 版本还是应该直接跳到 3.0?我倾向于 3.0,因为我将编写更多用于个人/学习用途的应用程序,但我想在开始之前看看是否有任何好的论据反对它。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

我认为直接进入 3.0 会更好。除非你有一个遗留代码库要处理,否则学习 2.xx 的做事方式几乎没有什么好处。

在 Python 世界中(实际上与大多数其他世界一样),发布确实需要一段时间才能向下迁移到所有子项目,但如果您发现需要转换回 2.xx,我不会'不要认为你会发现重新学习的东西特别痛苦。

【讨论】:

  • 问题是,它在另一个方向上效果更好。从 2.6 开始,等到 3.x 有更好的第三方支持等等,迁移到它就容易了。由于 2.6 具有向后移植的 3.x 功能,因此无需学习更多内容。
【解决方案2】:

使用 python 3.1,卢克。

【讨论】:

  • 更多人使用 py3.x => 更快的库端口。我不在乎 -+1。
  • 这对于这个问题来说是相当不切实际和无益的。
  • 如果我是提出这个问题的人,我会发现有 python 3.1 可用。所以我不必在 2.x 和 3.0 之间进行选择。无论如何,这很明显——如果你可以使用 py3k,就使用它。
  • "如果你可以使用 py3k,请使用它。"惊人的洞察力。
【解决方案3】:

绝对不是 3.0 - 3.1 在各个方面都更稳定、更好、更快;现在从 3.0 开始绝对没有意义,如果您想使用 3 系列,那么它应该是 3.1。

对于 2.6 与 3.1,3.1 是一种更好的语言(尤其是因为多年来积累的一些杂乱无章的东西被删除了,但为了向后兼容而必须保留在 2.* 中),但生态系统的所有其他部分(从扩展到工具,从书籍到集体知识)仍然非常支持 2.6 —— 如果您不关心能够使用(例如)某些 GUI 或科学扩展,部署在 App Engine 上,使用 COM 编写 Windows 脚本,拥有一个漂亮的第三方 IDE 等等,3.1 是可取的,但如果你关心这些东西,现在还是 2.*。

【讨论】:

  • 很遗憾在 Ubuntu 存储库中找不到 Python 3.1。
  • 比 GUI、科学等更多的库仍然只支持 2.6。
【解决方案4】:

你应该使用你所学的任何编程语言的最新版本,除非你有特定的理由。由于您没有不支持 Python 3.0 的现有项目,因此您可以随意使用最新版本。

【讨论】:

  • -1。糟糕的、短视的建议:“你应该使用任何编程语言的最新版本”——事情比这更微妙。另外,最新的什么版本?稳定发布?
  • "...除非您有特定的理由不这样做。"不要只引用句子的一部分然后告诉我我错了。把整个事情放在上下文中。是的,最新的稳定版本。
  • 这仍然是错误的建议。他没有具体的理由不这样做,这就是他要问的原因——但我可以给他一些。
  • 既然 OP 专门要求反对 3.0 的论据,也许你应该给他这些理由,而不是仅仅含糊地暗示它们。
  • 有一个具体的理由不这样做:几乎没有图书馆。这有望很快得到纠正,但这是一个非常重要的具体原因。
【解决方案5】:

在其他库赶上对它的支持之前,不应使用 Python 3.1。

您现在应该使用 2.6。它有几个向后移植的 3.x 功能,因此以后迁移到 3.x 不会很困难,并且您不会学习过时的做法。

【讨论】:

  • 你真的会依赖第三方库吗?
  • 这很常见。学习 Python 既要学习 API,又要学习“语言”本身——为什么要避免对 API 进行有用的扩展?
  • 此外,一旦他学会了它并想用它做点什么,我怀疑从现在起它会足够长,以获得良好的第三方库支持 - 至少几年。
【解决方案6】:

好消息是,同时学习 Python 2.x 和 3.x 并没有那么难。您可以安装最新的 2.x 版本作为系统注册的版本默认运行 Python 脚本,也可以安装最新的 3.x 版本以在需要时显式启动。这就是我在 Windows Vista 系统上所拥有的。

那么,学习2.x和3.x版本区别的关键文档是:

http://docs.python.org/3.1/whatsnew/3.0.html

如果您阅读了基于 2.x 的 Python 学习材料,并且还参考了上面的“Python 3.0 中的新功能”链接,您将了解事情的变化。另请参阅其他 whats new 文档,例如 3.0 和 3.1 之间的差异,但上面的链接是了解 2.x 与 3.x 变化的主要链接。

【讨论】:

  • 这个答案可能是所有 Py3 友好答案中最客观的。如果你只是想“学习 Python” - 然后学习两者,并排安装它们并 WET(将所有内容写两次)。需要注意的是,最基本的程序可以在这两种语言之间移植。如果您面临务实的任务,我宁愿小心 Py3。我不知道为什么有些人渴望 Py2.8 - 我会说一个不兼容 Py3 的 Py4(保留 Py3 的一些好东西:合并 str 和 unicode,留下两个关键字)。我的 Py4 将主要与 Py2 和(不太重要的)Py3 向后兼容。
【解决方案7】:

简答:从 Python 2.6 开始。

原因:当您可以利用他人的工作时,编程会更有趣、更有用。这意味着经常使用 3rd 方库。许多流行的 Python 库尚不支持 3.x。想到 PIL 和 NumPy/SciPy。我最喜欢的解释器 ipython 也不适用于 3.0。许多单元测试框架和 Web 框架还没有在 3.0 上。

因此,如果您从 3.x 开始,许多门将向您关闭,至少在 3.x 移植开始之前。无可否认,Python 3.x 中有很多不错的特性,但其中一些已经被向后移植到 2.6,还有一些将被移植到 2.7。所以暂时坚持使用 2.6,并在一年左右的时间重新评估 3.x。

【讨论】:

    【解决方案8】:

    使用 3.1

    为什么?

    1) 因为只要大家还在使用 2.6,库迁移到 3.1 的理由就会减少。只要这些库没有移植到 3.1,您就只能选择不使用 3.1 的优势,或者只使用向后移植的功能集的骇人听闻的解决方案来完成工作。 做一个有远见的思想家,帮助推动 Python 向前发展。

    2) 如果你现在学习和使用 3.1,以后海量移植完成后你就不必重新学习了。我知道有些人说你不需要学很多东西,但为什么要学那些老废话呢? Python 本身正在向 3.1 迈进,库将向 3.1 迈进,不得不追赶并重新学习您已经在使用的语言是很糟糕的。

    3) 3.1 是一种更好的语言,比 2.6 更稳定、更一致……这是正常的。从 2.6 中吸取的经验教训都倾注到 3.1 中以使其变得更好。 这是一个称为 PROGRESS 的过程。这就是为什么没有人仍然使用 Windows 3.1。这是事情向前发展的方式。否则,您认为他们为什么会一开始就麻烦地向后移植功能集?

    4) 如果您正在学习 Python,并学习 2.6,那么当您真正熟悉该语言时,端口将被淘汰,您将不得不重新学习库和语言。如果你从 3.1 开始,那么当你对语言感到熟悉的时候,ports 就会出来,然后你就可以学习你感兴趣的库了。这是一个更顺畅的过程

    5) 成为一个更好的开发者。如果你必须学习和重新学习相同的东西,你的理解不会很深。通过只学习这种语言及其库一次,您将有更多时间使用它们,而不是重新学习语法。这使您可以更好地理解它们。如果你真的因为放弃图书馆而错过了一些作品?写他们。您可能不需要整个库,并且通常可以只编写您需要的那些部分,并为自己开发工具。这再次有助于您更好、更深入地理解语言。

    【讨论】:

    • 让我把上面的答案翻译成人类语言:“是的,为了 Python 3.x 牺牲自己并使用它。缺少库?别担心,当更多像你这样的傻瓜搬到Python 3.x,最后库维护者将被同情移动并移植到 3.x - 使用six 或类似的。它是一种更好的语言,并且速度是 2.7 的两倍(已经很慢,请注意 GIL)只是CPython 中的一个实现问题。”我的建议:不要听别人的。自己做决定并承担后果。检查什么有效,而不是粉丝告诉你的“正确”。
    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2011-07-01
    相关资源
    最近更新 更多