Re: [SSFR] quel langage ? |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
Marc Chantreux a écrit :
Philippe Jacquot wrote:
Pour faire court, aussi... Python roXise. Nan, sans dec', vous
devriez jeter un oeil. Et c'est un perleux convaincu qui vous le
dit. ;-)
Python est à Perl ce que Dali est à Picasso (comprenne qui pourra).
Je sais pas si on est HS, là, mais tu m'interesse: j'ai fais 2,3
petites choses en python (je m'y suis mis parceque certains programmes
l'utilisent comme langage d'extension) et décidément, ce langage
m'ennuie! J'aimerais bien voir des choses puissantes ou sexy en python
mais je n'en trouve jamais.
évidement, quand j'en parle aux pythoneux, je passe pour un trolliste
aux gros sabots j'aimerais vraiment apprendre a ne pas trouver ce
langage soporifique. Pourrais-tu me faire peter des liens sur des
codes qui me montrent ce que python a dans le bide ?
cordialement,
Bah, bon, soyons raisonnables, c'est surtout affaire de subjectivité
tout ça. Perso, ce que je trouve séduisant dans Python, hormis
l'orientation object du langage, c'est la souplesse des traitements de
données, notament l'accès aux éléments de listes.
Par exemple:
>>> a=[1,2,3,4] # un tableau
>>> a[2:] # tout sauf les 2 premiers
[3, 4]
>>> a[::2] # un sur deux (on donne le pas)
[1, 3]
>>> a[::-1] # chacun, mais en reverse
[4, 3, 2, 1]
>>> word="pichour" # une chaine est un tableau
>>> word[::-1] # on reverse la chaine
'ruohcip'
>>>
Bon, en revanche il faut apprendre à manipuler les intervales, car il ne
s'agit pas ici d'indexes. L'élément d'index 1 est désigné par
l'intervale [0:1], les 3 premiers éléments d'une liste sont désignés par
l'intervale [0:3]. On peut bien sur toujours adresser directement les
indexs.
a[2:3] = [3] #tableau à un seul élément)
a[2] = 3 #type numérique)
La gestion d'erreurs est aussi simplifiée avec les clauses try/except.
Je connais pas trop C, mais j'imagine que ça marche pareil que catch.
L'indentation, on aime ou on aime pas, mais elle est significative en
python. Attention aux editeurs de textes mal configurés..
Support des fonctions lambda, équivalent des fonctions anonymes de perl.
Par exemple:
>>> seq=range(8)
>>> seq
[0, 1, 2, 3, 4, 5, 6, 7]
>>> map(lambda x: x*x, seq)
[0, 1, 4, 9, 16, 25, 36, 49]
Maintenant, bon, je découvre aussi. Je suis en train de passer petit à
petit mes moulinettes en Python, et je me rends compte que, non
seulement ça facilite la lecture, mais en plus je peux mieux gérer des
conditions d'exception qui étaient assez "lourdes" à traiter en Perl.
Au final, c'est une question de sensibilité. Je me sens autant à l'aise
avec Python qu'avec Qmail, djbdns, ou tout autre outil made in DjB (troll).
Y'en a qu'aiment pas...
So, a+
philippe