我正在阅读Toby Segaran撰写的一本名为“编程集体智慧”的好书(我强烈推荐)
代码示例都是用Python编写的,因为我今年已经学会了一种新语言(从VB.net毕业到C#),我不急于跳上另一条学习曲线。
这使得我将python示例转换为C#的问题。
问题是:代码保留在python中有多重要?在python中有什么东西我不能用普通的托管静态类型语言做吗?
答案 0 :(得分:19)
您将发现的一个挑战是,不仅算法是用Python实现的,而且本书还广泛使用了BeautifulSoup,Numpy,PIL等Python库(见附录A)。
我怀疑有哪些算法的细节你无法移植到另一种语言,但你将无法完成这些练习。另外,要翻译代码,你必须至少学习一点Python,不是吗?
我建议你潜入并学习Python。如果您对与C#项目的互操作性有任何疑虑,可以使用IronPython。
答案 1 :(得分:2)
你可以用所有图灵完整语言做同样的事情。 Here is an example用于在SQL中呈现Mandelbrot分形。该示例显示:即使您可以使用任何语言,但努力也会有所不同。
所以我的猜测是代码会变得更长,因为Python非常灵活和开放。
答案 2 :(得分:2)
我建议将它们翻译成C#。我一直在向VB.Net移植第2章“建议”。一路走来,我正在学习Python作为副作用。托比用Python列表做了一些很棒的事情。
处理额外的Python库是另一回事。 Ndelicious与pyDelicious非常接近,但缺少一些关键功能(热门帖子!)。
答案 3 :(得分:1)
强制性XKCD:http://xkcd.com/353/
我知道你明确表示你不想学习Python(今年),但将Python示例翻译成C#肯定会是一个更陡峭的曲线。只需dive in!
答案 4 :(得分:1)
这本书是关于算法的,而不是编程的细节,选择的语言只是为了使例子具体化。正如作者所说,“本书中的代码示例是用Python编写的......但我提供了所有算法的解释,以便其他语言的程序员可以遵循。” (第xv页)
Python是一门优秀的语言,易于学习,但我怀疑从本书中应用思想的困难不在于将代码翻译成另一种语言或一组库,而是在理解思想和修改代码时满足您的需求。我认为使用您熟悉的语言有两个主要原因:1)当您的代码不起作用时,如果您使用不熟悉的语言编写,您将不知道从哪里开始寻找错误,例如如果你像大多数人一样,你甚至会开始怀疑它是否是由于Python中的一个错误,它不会,但你会想,它会分散注意力。 2)在一定时间内你能记住多少是自然的限制;并且同时学习一门语言会让你记忆两倍。
这取决于你对C#的了解程度,以及离开时你失去了什么。
答案 5 :(得分:0)
Python似乎是人工智能编程LISP已经存在了几十年。 Russel / Norvig的着名书籍AI: A Modern Approach也提供了很多examples in Python。