【问题标题】:Python and Collective IntelligencePython 和集体智慧
【发布时间】:2009-05-14 13:11:53
【问题描述】:

我目前正在阅读 Toby Segaran 的一本名为“Programming Collective Intelligence”的好书(我强烈推荐)

代码示例都是用 Python 编写的,而且由于我今年已经学习了一门新语言(从 VB.net 毕业到 C#),所以我并不热衷于跳上另一条学习曲线。

这给我留下了将 python 示例翻译成 C# 的问题。

问题是:代码保留在 python 中有多重要? python 中有没有我不能用普通的托管静态类型语言做的事情?

【问题讨论】:

  • 两种语言都是图灵完备的。
  • 十年来我最喜欢的书! Python 的学习曲线比你想象的要小……但是翻译成 C# 会让你对 Python 的简洁性有很大的赞赏。
  • 只有我觉得这本书的代码很烂吗?我不知道有多少次看到“if len(my_list): ...”来测试列表是否为空。 Python 代码丑陋且不可读。否则,这是一个非常有趣且易于理解的机器学习介绍。

标签: python collective-intelligence


【解决方案1】:

您会发现一个挑战是,不仅算法是用 Python 实现的,而且本书还广泛使用了 BeautifulSoup、Numpy、PIL 等 Python 库(参见附录 A)。

我怀疑算法的任何细节是无法移植到另一种语言的,但你在完成这些练习时会遇到困难。此外,要翻译代码,您至少必须学习一点 Python,不是吗?

我建议您直接潜入并学习 Python。如果您担心与 C# 项目的互操作性,可以使用 IronPython。

【讨论】:

  • 没错。了解 Python 将是翻译它所必需的。人们使用 Python 的部分原因是因为有许多可用的高质量库。必须翻译感兴趣的代码库将是一个比仅仅学习 Python 大得多的负担 :-)
  • 你推荐 IronPython 吗?
  • 我不能完全推荐 IronPython,因为我不进行任何 .NET 开发,但在 PyCon,我感觉到人们对保持不同 Python 实现之间的一致性非常感兴趣。 . 所以如果你需要 .NET 集成,请使用 IronPython。如果您的 Python 将独立运行,那么在 .NET 集成很重要之前,使用 C-Python(即最常见的 Python)可能会更简单一些。
【解决方案2】:

您可以在所有图灵完备的语言中做同样的事情。 Here is an example 用于在 SQL 中呈现 Mandelbrot 分形。例子表明:即使你可以使用任何语言,努力程度也会有所不同。

所以我的猜测是,由于 Python 如此灵活和开放,代码会变得更长。

【讨论】:

    【解决方案3】:

    我建议将它们翻译成 C#。我一直在将第 2 章“建议”移植到 VB.Net。在此过程中,我正在学习 Python 作为一种副作用。 Toby 用 Python 列表做了一些了不起的事情。

    处理额外的 Python 库是另一回事。 Ndelicious 与 pyDelicious 非常接近,但缺少一些关键功能(热门帖子!)。

    【讨论】:

      【解决方案4】:

      强制性 XKCD:http://xkcd.com/353/

      我知道你明确表示不想学习 Python(今年),但是将 Python 示例转换为 C# 肯定会是一个更陡峭的曲线。就dive in!

      【讨论】:

      • C:\Python30>python -m antigravity
      【解决方案5】:

      这本书是关于算法的,而不是编程的细节,选择的语言只是为了让例子具体化。正如作者所说,“本书中的代码示例是用 Python 编写的……但我提供了所有算法的解释,以便其他语言的程序员可以学习。” (p.xv)

      Python 是一门很棒的语言并且易于学习,但我怀疑应用书中的想法的困难不在于将代码翻译成另一种语言或一组库,而在于理解这些想法和修改代码以满足您的需求。我认为使用您熟悉的语言有两个主要原因:1)当您的代码不起作用时,如果您使用不熟悉的语言编写,您将不知道从哪里开始寻找错误,例如如果你和大多数人一样,你甚至会开始怀疑这是否是由于 Python 中的一个错误,它不会是,但你会想知道它会分散注意力。 2)在一定时间内你能记住多少是有自然限制的;同时学习一门语言会让你记住两倍。

      这取决于你对 C# 的了解程度,以及离开它会失去什么。

      【讨论】:

        【解决方案6】:

        对于人工智能编程来说,Python 似乎就像 LISP 几十年来一样。 Russel/Norvig 的名著AI: A Modern Approach 也提供了很多examples in Python

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多