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

10 投票
13 回答
1891 浏览
提问于 2025-04-15 15:51

我需要一个IronPython或Python的例子,能让C#或VB.NET的开发者看到这个语言有多棒。

我在找一个简单易懂的代码片段或者应用,方便我展示Python的功能。

有没有什么想法?

13 个回答

10

把你们内部的一个小C#应用程序用IronPython重新写一遍,然后告诉他们你用了多少行代码。如果这样还不能让人印象深刻,那我真不知道还有什么能让人惊讶了。

18

彼得·诺维格的拼写纠正器,用21行Python 2.5代码写成的。

6

我想在IDLE里做个简单又酷的演示(至少在Python中是这样)。比如:

>>> 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
...

这个演示展示了基本的列表和字典是怎样的,列表推导式是怎么工作的,命名参数是什么,lambda表达式的用法,还有交互式解释器的好处。最重要的是,它用七行代码完成了一个相对复杂的任务。

补充:

哦,我还会展示如果用生成器表达式来设置letters,代码是怎么工作的:

letters = (c.lower() for c in text if c.isalpha())

...也就是说,效果完全一样。

撰写回答