Général
- Le nom Python vient des 'Monthy Python' pas du serpent > ce qui rend le laguage tout de suite plus sympatique ;)
- Ca semble s'inspirer assez du C
Ex: le print() me rappelle le print du C avec des améliorations - Utilisation de l'indentation plutôt que les {}...
pourquoi pas, au moins ça évite les troll interminables sur les { à la fin d'une ligne ou au début de la ligne suivante :p
Troll qui a dû au moins me prendre 2 journées de ma vie si on cumule toutes les discussions inutiles - Les types de base : list (qui sont aussi des stack, queue), set, dictionary (alias map en java) mais je n'ai pas compris la difference avec les tuples
- Je trouve étrange d'introduire les complexes (i) dans le tutorial ?! Même si cette fonctionnalité est intéressante, elle ne sert pas tout les jours (jamais ?!)
- List/Tableau = même combat
Contrairement à Java ou les 2 types de classes sont clairement séparées
En Python ou Ruby la différence à beaucoup moins d'importance et c'est mieux - On peut itérer dans les chaines de caractères comme dans un tableau:
b = 'azerty' for x in b: print(x)
- String indice ou slice
Un peu surpris au début par la manipulation de chaines avec les indices (slices) mais on s'y habitue bien :)
Et même ça me semble assez puissant ! (a voir si c'est lisible dans un programme plus complexe ou écrit par quelqu'un d'autre...)
>>> word = 'Help' + 'A' >>> word[4] 'A' >>> word[0:2] 'He' >>> word[2:4] 'lp' >>> word[:2] # The first two characters 'He' >>> word[2:] # Everything except the first two characters 'lpA'
- Une boucle for peut avoir un else
Ca semble intéressant mais si je ne vois pas bien l'utilité (cas où il y a un break dans le for)
for x in range(2, n): if n % x == 0: print(n, 'equals', x, '*', n//x) break else: # loop fell through without finding a factor print(n, 'is a prime number')Les moins
- Pas de switch / case mais if ... elif ... elif ...
Je trouve que les switch/case (même si je ne les utilise pas souvent) expriment mieux ce qu'on veut faire dans ces cas là et la synthaxe est plus concise...
En java j'ai tendance à considérer pleins de elseif comme un code smell qu'il faudrait autre chose: un switch/case dans le cas les plus simple ou un pattern type builder ou command pour les cas les plus complexe
Peut-etre juste un habitude à prendre - Ruby semble plus orienté object, exemple taille d'une chaine de char
python: len('azerty') ruby: 'azerty'.size