如何用IronPython/Python给开发人员留下深刻印象

Dro*_*per 10 python ironpython

我需要一个IronPython\Python示例,它将向C#/ VB.NET开发人员展示这种语言到底有多棒.

我正在寻找一个易于理解的代码片段或应用程序,我可以使用它来演示Python的功能.

有什么想法吗?

Dom*_*ger 19

Peter Norvig 在21行Python 2.5中的拼写纠错器.

  • 如果需要一个小时来解释21行程序,请选择其他程序! (6认同)
  • 实际上,除了edits1方法(为给定单词创建类似的单词)之外,它并不难理解. (3认同)
  • 这是一个了不起的应用程序 - 但是我需要向观众解释很多东西才能理解那里发生的事情,我需要更简单的东西. (2认同)
  • FWIW,在DevDays伦敦迈克尔斯帕克斯在一小时内相当全面地解释了它,恕我直言,它对Python做了很好的介绍. (2认同)
  • 除了解释Python之外,还必须解释拼写算法,这不是原始海报的目标. (2认同)

Geo*_*Geo 9

重写IronPython中的任何小型C#应用程序,并向他们展示它花了多少行代码.如果这不令人印象深刻,我不知道是什么.

我指的是你的一个内部应用程序.

  • 线路数量不可避免地会大幅减少.我很确定Python的可读性不会受到影响. (3认同)

Rob*_*ney 6

我会快速演示一些微不足道的东西(至少在Python中)但在IDLE中很酷.例如:

>>> text = # some nice long text, e.g. the Gettysburg Address
>>> letters = [c.lower() for c in text if c.isalpha()]
>>> letters
    ['f', 'o', 'u', 'r', 's', 'c', 'o', 'r', 'e', 'a', 'n', 'd', 's', 'e', 'v', 'e',
    ...
>>> freq = {}
>>> for c in letters:
        freq[c] = freq.get(c, 0) + 1

>>> freq
    {'a': 102, 'c': 31, 'b': 14, 'e': 165, 'd': 58, 'g': 28, 'f': 27, 'i': 68, 'h': 80, 
    ...
>>> for c in sorted(freq.keys(), key=lambda x: freq[x], reverse=True):
        print c, freq[c]

e 165
t 126
a 102
...
Run Code Online (Sandbox Code Playgroud)

这展示了基本的列表和字典类的样子,列表解析是如何工作的,命名参数,lambda表达式,交互式解释的有效性,并实现七行代码相当复杂的任务.

编辑:

哦,然后我会展示如果letters使用生成器表达式设置代码的工作方式:

letters = (c.lower() for c in text if c.isalpha())
Run Code Online (Sandbox Code Playgroud)

......也就是说,完全相同.

  • 让我感到惊讶的是,我在Python中构建了一些已经存在的东西. (5认同)
  • 好的,它在2.6中不存在.我觉得现在不那么愚蠢了. (2认同)