10
votes

Comment impressionner les développeurs avec IronPython / Python

J'ai besoin d'un exemple d'ironpython \ Python qui montrerait des développeurs C # / VB.NET à quel point cette langue est géniale.

Je recherche une facile à comprendre Code Snippet ou application Je peux utiliser les capacités de Demo Python.

Toutes les pensées?


2 commentaires

La langue est géniale. La vente difficile est une bonne aide IDE pour Python et .NET ensemble.


Sharpdevelop.net possède un excellent support IronPython et .NET.


13 Réponses :


19
votes

Peter Norvig's Correcteur d'orthographe dans 21 lignes de Python 2.5.


9 commentaires

C'est une application incroyable - mais je devrais expliquer beaucoup pour que le public puisse comprendre ce qui se passe là-bas, j'ai besoin de quelque chose de plus simple.


FWIW, à DeviDaS London Michael Sparks l'expliqua assez de manière exhaustive en une heure et IMHO a fait une excellente introduction à Python.


S'il faut une heure pour expliquer un programme de 21 lignes, choisissez un programme différent!


J'ai bien peur qu'une heure soit un peu trop longue pour mes besoins


En fait, mis à part la méthode EDITS1 (qui crée des mots similaires pour un mot donné), ce n'est pas si difficile à comprendre.


En plus d'expliquer Python, l'algorithme d'orthographe devrait être expliquée, ce qui n'est pas l'objectif de l'affiche originale.


@Eol - True, mais c'est sûrement le cas pour tout peu de code non trivial, et il est à peine comme l'algorithme d'orthographe est massivement complexe.


En C # peut également être écrit écrit dans 21 lignes. CODEGRUNT.CO.UK/CODE/SPELL.CS


@alu, oui, mais regarde-le. : - /



3
votes

Quelque chose de simple mais cool avec des générateurs, peut-être? XXX


1 commentaires

Joli. La compréhension et les générateurs de la liste seraient quelques-uns de mes points de départ dans la projection de Python.



10
votes

Réécrivez toute petite application C # à IronPython et montrez-leur combien de lignes de code qui vous a pris. Si cela n'est pas impressionnant, je ne sais pas ce qui est.

Je parle de l'une de vos applications internes.


2 commentaires

La chose est de prendre la lisibilité sur moins de lignes n'importe quel jour.


Il est inévitable que le nombre de lignes diminuait considérablement. Je suis à peu près sûr que la lisibilité de Python n'aura pas à souffrir.



2
votes

générateurs, définissant un itérateur, simple

http://ttsiodras.googlepages.com/yield.html


0 commentaires

1
votes

Que diriez-vous d'un générateur de nombres premiers.

>>> def sieve(x):
...    if x: return [ x[0] ] + sieve([ y for y in x if y % x[0] > 0 ])
...    return []
... 
>>> sieve(range(2,100))
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]


0 commentaires

3
votes

Qu'en est-il d'une démonstration de dactylographie de canard? Redirection d'un stdouté à une interface graphique, par exemple.

ou certaines des bibliothèques python pures exceptionnellement utiles (Sqlalchemy Springs à l'esprit dans ma ligne de travail, votre kilométrage peut varier). P>

Une partie de la Les bits de syntaxe courts courts seraient bien également, par exemple: p>

Obtenez un aperçu rapide d'un grand jeu de données: p> xxx pré>

trouver toutes les cordes qui Commencez par 'A': P>

the_as = (s for s in really_big_list_of_strings if s.startswith('a'))
the_as.next()


0 commentaires

1
votes

montre-leur un exemple du livre de recettes IronPython comme celui-ci sur Formatage personnalisé de DataGridView . Ce n'est pas terriblement flashy, mais c'est quelque chose que tout le monde se familiarisera parce que tout le monde a construit une application avec une grille (ou veut le faire).

La partie la plus importante de votre démo sera la procédure pas à pas lorsque vous soulignez la façon dont les choses sont moins verbeuses que c # et plus similaires à VB.

Assurez-vous de modifier l'exemple du livre de recettes pour afficher certaines des piles incluses de Python. Peut-être utiliser le module os pour obtenir une liste de répertoires et peupler la grille avec nom de fichier, taille, date créée, etc.


0 commentaires

6
votes

Je ferais une démonstration rapide de quelque chose de trivial (en python, au moins) mais refroidir au ralenti. Par exemple:

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



2
votes

Vous pouvez utiliser Helloworld de Cherrypy S:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())


0 commentaires

3
votes

Je dois d'accord Geo. Afficher une application C # ou VB à côté de la même application écrite à IronPython. Quand j'ai fait mes pourparlers d'ironpython, j'ai eu beaucoup de succès de la morphing C # dans Python. Cela fait une présentation très dramatique.

Je suis aussi un grand fan de montrer comment le typing du canard rend votre code plus testable.


0 commentaires

4
votes

Au niveau même de base, vous pouvez afficher un programme d'inversion de chaîne en C # et Python.

in c #: p> xxx pré>

in python: p>

s[::-1]


1 commentaires

À une personne inconnue avec Python, s [:: - 1] semble probablement être en forme de chat.



4
votes
import clr
clr.AddReference('System.Speech')
clr.AddReference('System.Xml')

from System.Speech.Synthesis import SpeechSynthesizer
from System.Net import WebClient
from System.Xml import XmlDocument, XmlTextReader


content = WebClient().DownloadString("http://twitter.com/statuses/public_timeline.xml")
xmlDoc = XmlDocument()
spk = SpeechSynthesizer()

xmlDoc.LoadXml(content)
statusesNode = xmlDoc.SelectSingleNode("statuses")
for status in statusesNode:
    s = "<?xml version=\"1.0\"?><speak version=\"1.0\" xml:lang=\"en-US\"><break/>"
    s = s + status.SelectSingleNode("text").InnerText + "</speak>"
    spk.SpeakSsml(s)
A talking Twitter client.
For more examples
http://www.ironpython.info/index.php/Main_Page

2 commentaires

Ne serait pas aussi facile de le faire en utilisant c #?


Bonjour dror, je soupçonne que le C # serait plus loc. Cet exemple de démos facilite l'intégration .NET et montre la lisibilité de Python. D'accord pour dire que vous voudriez probablement un exemple de Stuff Ninja avec des listes ou des dictionnaires en plus de cela. Bonne chance!



0
votes

La possibilité de le faire grâce à la capacité d'Ironthon à ajouter de nouveaux membres à un type au moment de l'exécution m'a impressionné

http://ironpython-resource.com/post/2008/08/23/IronphytHon-dynamiquement-Créating-Objects-and-Binding-them-a-a-form.aspx


0 commentaires