Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Général Python
Général Python Forum d'entraide sur les fondamentaux du langage Python, syntaxe, POO, bibliothèque standard, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 09/12/2008, 23h49   #21
Guigui_
Expert Confirmé Sénior
 
Avatar de Guigui_
 
Homme
Ingénieur développement logiciels
Inscription : août 2002
Messages : 1 861
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2002
Messages : 1 861
Points : 8 455
Points : 8 455
Un débutant aura pour le moment tout intérêt à commencer avec Python 2.6 pour pouvoir profiter des bibliothèques tierces qui sont tout de même indispensables pour profiter pleinement des possibilités de Python.
Pour ma part, dès que NumPy sera disponible en 2.6, je passerai au boulot avec cette version (tous les binaires des autres bibliothèques que j'utilise existant maintenant)
Mais il peut déjà être bien de commencer à avoir en tête les changements qu'apportera Python 3, cela peut déjà faciliter une migration future (qui n'aura lieu de toute façon pas avant un bout de temps) en évitant les modules ou fonctions dépréciées entre autres

Pour moi, le changement qui m'apparaît le plus important est la gestion par défaut de l'unicode (c'est surtout que l'ascii 7 bits utilisé par défaut dans Python 2 apporte pas mal de galère (alors qu'un ascii 8 bits aurait été largement suffisant)) ainsi que la différence des divisions / et // , ce qui allégera mes codes en évitant à avoir à forcer le cast en float des nombres.
Guigui_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2008, 01h04   #22
dividee
Membre Expert
 
Homme
Inscription : mars 2007
Messages : 859
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 859
Points : 1 195
Points : 1 195
J'ai installé la 3.0 par curiosité, mais je resterais encore avec la 2.5 un bon moment (ou la 2.6, le jour où je n'aurais pas la flemme de réinstaller les librairies que j'utilise). Passer à la 3.0 pour le moment, c'est se priver de presque toutes les librairies externes, qui font aussi la force de Python.

Quant aux nouveautés de la version 3, j'en suis plutôt content en général, sauf pour la division. Je sais que c'est annoncé depuis longtemps, mais cela va à contre-courant de tous les autres langages que je connais, et je suis certain de souvent oublier d'utiliser // au lieu de /. L'erreur peut être difficile à détecter car elle peut ne se manifester que rarement:
Code :
1
2
3
4
>>> 3**10 / 3 == 3**9
True
>>> 3**100 / 3 == 3**99
False
C'est quand-même pas si difficile de caster un int en float si on veut une division réelle.

Je suis particulièrement content pour l'Unicode, qui est malheureusement un vrai casse-tête quelque fois en Python 2, ainsi que pour les "views" et les itérateurs. La plupart du temps, xrange() ou dict.iteritems() sont plus efficaces que range() et dict.items() (pour n'en citer que 2), mais leur nom n'est pas idéal et elles sont de ce fait souvent ignorées par les débutants. Idem pour l'utilisation automatique des packages optimisés s'ils sont disponibles (cPickle, etc.)

Je regrette un peu la disparition de reduce() des builtins; alors que map() ou filter() peuvent être avantageusement remplacés par une compréhension de liste, ce n'est pas le cas de reduce(). Mais bon, j'en ferais pas une maladie (elle est toujours dans la librairie standard, tout de même).
dividee est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2008, 20h20   #23
fodger
Membre à l'essai
 
Inscription : octobre 2005
Messages : 62
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 62
Points : 23
Points : 23
Citation:
Envoyé par airod Voir le message
en traquant les mauvaises ecriture (bien souvent hérité de pratique de programmation en C/C++)
Python demande au développeur d'être rigoureux et méthodique si il veut un programme performant.
Qu'est-ce qu'il ne faut pas entendre ! Je ne connais pas le python, mais connaitre le C avec rigueur (au standard C99) apporte bien au contraire d'excellentes méthodes de programmation.

Le C, pour qui le maîtrise, demande beaucoup plus de rigueur que le python et autres languages comme le VB.

Le débat sur les performances entre le C et le Python est biaisé. Le python est basé sur le C et est à la base un language script. Le C laisse loin dérrière le python.

J'ajouterais que quelque soit le language si tu veux pondre un code pourri rien ne t'en empêche.
fodger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2008, 12h20   #24
Musclor13
Invité de passage
 
Collégien
Inscription : août 2007
Messages : 12
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Collégien

Informations forums :
Inscription : août 2007
Messages : 12
Points : 4
Points : 4
Par défaut Pas mal mais dommage pour l'intercompatibilitée

Bonjour.
Moi j'utilise Python depuis pas longtemps et je n'avais jamais programmé avant.
Je trouve que l'idée de l'unicode est la meilleur chose que Python3 offre car mes logiciels en konsole plantent souvant au niveau de l'affichage...
Par contre je trouve hiper nul l'idée de briser la compatibilitée. Cela veut dire que des milliers de codes (ceux du site notemment) douvent être réécrits pour Python3 et c'est pas ce qu'il y a de plus cool de réécrire une partie du code parce qu'on a mit plain de print et qu'il faut les rechercher apres.
De plus il y a eut certains changement mais les explications complètes sont en anglais (J'arrive pas a importer un fichier dans le même repertoir que mon code avec "from nomdudocument import *" et ca c'est galère.
De plus a ce que je comprend il n'y a pas beaucoups de bibliotheque compatible alors qu'il aurais fallut (ou il faudrais faire à l'avenir) une version complète de python avec toutes les bibliotheques (histoire de simplifier l'installation de celui qui ne crée pas de logiciels mais qui en execute. Ils font bien ça avec Java Runtime Environnement)
Non frenchement Python3 c'est bien mais pas pour tout de suite. Je l'ai installé sur mon ordi mais j'attendrais un mois ou deux pour avoir la documentation adapté à cette version.
Sinon il y a des bonnes idées la-dedans mais bon faut être patient.
Au revoir à tous et bon scripts sur python (2.5, 2.6 ou 3)
PS: Est-ce que Python3 est plus accessible (Synthèse vocal NVDA ou autre, zoom...) Parce que les interfaces graphiques en Tkinter ne sont pas lu vocalement et du coups cela prive certains. Moi qui veut faire des programmes utilisables par tout le monde je trouvais ça regrétable dans Python2.5 alors est-ce que Python3 fonctionne bien la-dessus?
Musclor13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2008, 12h38   #25
Matthieu Brucher
Rédacteur/Modérateur

 
Avatar de Matthieu Brucher
 
Matthieu Brucher
Développeur HPC
Inscription : juillet 2005
Messages : 9 703
Détails du profil
Informations personnelles :
Nom : Matthieu Brucher
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur HPC
Secteur : Industrie

Informations forums :
Inscription : juillet 2005
Messages : 9 703
Points : 18 318
Points : 18 318
Tout d'abord, il y a un script de conversion de la version 2.6 vers la 3, donc normalement cette partie est couverte. Sauf pour les modules utilisant des extensions C. Pour eux, il faudra attendre un petit peu plus longtemps.

Citation:
De plus a ce que je comprend il n'y a pas beaucoups de bibliotheque compatible alors qu'il aurais fallut (ou il faudrais faire à l'avenir) une version complète de python avec toutes les bibliotheques
Impossible ! Ca voudrait dire qu'il faut attendre 4-5 ans avant de sortir une version avec tous les modules à jour, et encore un grand nombre ne serait plus maintenu entre temps, sans compter que 4-5 ans sur un projet, sans release, ça va à l'encontre de l'Open Source d'un certain sens.
Là, les projets les plus simples et/ou les plus fondamentaux peuvent franchir le cap (je pense aux projets sans extension C, ou à Numpy sur lequel est basé un très grand nombre d'autres projets). Puis une nouvelle itération verra la transition des modules basés sur les précédents, ...

Et il existe, au moins dans le milieu scientifique, deux distributions plus ou moins complètes de Python (Python(x,y) et ETS).
Matthieu Brucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2008, 13h25   #26
emmanuel_dumas
Membre régulier
 
Emmanuel DUMAS
Inscription : novembre 2008
Messages : 94
Détails du profil
Informations personnelles :
Nom : Emmanuel DUMAS

Informations forums :
Inscription : novembre 2008
Messages : 94
Points : 75
Points : 75
Par défaut Python 3.0

Bonjour

Pour ma part, je suis déjà complètement passé à Python 3.0. Facile, je n'ai pas aujourd'hui une base énorme de code Python, cela risque de changer très vite.

La rupture de compatibilité ne me gène pas, au contraire, je trouve cela plutôt bien car cela va bien dans le sens d'un langage globalement plus propre. Et c'est bien pour cela que j'aime le python, c'est à mon sens l'un des langages qui permet une écriture de code très rapide et assez propre.

Par contre, j'ai lu l'exemple de la telnetlib en version 2.5 et 3.0, je trouve que la gestion généralisée de l'unicode ne rend pas toujours certains détails facile à comprendre. Si je n'avais pas déjà eu des problèmes de traduction et représentation de certain alphabet, je trouverais cela un peu lourd.

Emmanuel
emmanuel_dumas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2009, 15h26   #27
shadowsam
Membre régulier
 
Inscription : novembre 2008
Messages : 99
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France

Informations forums :
Inscription : novembre 2008
Messages : 99
Points : 88
Points : 88
Mon avis personnel sur la question est que je suis plutôt content de ce que j'ai pu lire sur les changements fait pour la 3.0.

Le point qui a controverse étant forcément la backward compatibilité du langage. Il y a beaucoup de langages qui trainent des verrues et des absurdités dans leurs standards pour la seule et unique raison qu'il faut être absolument backward compatible. Très honnêtement, je ne suis pas sur que garder un bug de spécification pendant 15ans soit d'une quelconque utilité.
A un moment il faut aller de l'avant et couper avec certaines choses aberrantes.


Donc avis très favorable de mon coté. Maintenant je ne compte pas passer de suite en 3.0. Je vais laisser murir la version, laisser arriver les corrections de bugs et la traduction des librairies et ensuite je passerais en 3.0.
shadowsam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2009, 10h07   #28
Gwennin
Futur Membre du Club
 
Homme Gwennin
Étudiant
Inscription : février 2008
Messages : 43
Détails du profil
Informations personnelles :
Nom : Homme Gwennin
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 43
Points : 16
Points : 16
Bonjour,

Je voulais juste vous informer que le magasine "GNU/Linux Magazine / France" venais de sortir un Hors Série en Janvier/Février entièrement consacré à python...

"Explorez les richesses du langage Python"...

il contient notamment tout un article sur Python 3.0...
Gwennin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2009, 13h19   #29
kedare
Membre extrêmement actif
 
Avatar de kedare
 
Mathieu
Administrateur systèmes et réseaux
Inscription : juillet 2005
Messages : 1 483
Détails du profil
Informations personnelles :
Nom : Mathieu
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : juillet 2005
Messages : 1 483
Points : 1 393
Points : 1 393
Citation:
Envoyé par vega95 Voir le message
Mon début de programme tarot sous wxpython finit avec une bonne quinzaine de dll et divers fichiers pour près de 12 Mo
Recompresse Library.zip avec p7zip au maximum, et compresse tout les dll/exe via UPX, ca devrais pas dépasser les 5mo
kedare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 09h32   #30
cho7
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 33
Points : 33
Alors moi ce qui m'embête le plus dans cette nouvelle mouture, c'est la nouvelle syntaxe du string format.

Je préférais carrément l'usage du %

print "Salut %s" % nom
devient
print("Salut {0}".format(nom))

Pour le coup, non seulement c'est plus verbeux, mais en plus les brackets ({ et }) c'est trop relou à tapper comparé à un %, je perd grave en productivité !


A part ça le reste ne me dérange pas trop. J'en ai profité pour découvrir les décorateurs, que j'avais un peu laissé de coté jusqu'à maintenant même si ça existe depuis un bail... C'est plutôt sympa, du sucre syntaxique comme disent certains, mais c'est sympa


Bref, s'il pouvait remettre juste l'ancienne syntaxe de string formatter en rétro compatibilité pour les faignants comme moi, ce serait sympa
cho7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 10h47   #31
Thierry Chappuis
Expert Confirmé Sénior
 
Avatar de Thierry Chappuis
 
Homme Thierry Chappuis
Enseignant Chercheur
Inscription : mai 2005
Messages : 3 481
Détails du profil
Informations personnelles :
Nom : Homme Thierry Chappuis
Âge : 36
Localisation : Suisse

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2005
Messages : 3 481
Points : 5 303
Points : 5 303
Citation:
Envoyé par cho7 Voir le message
Bref, s'il pouvait remettre juste l'ancienne syntaxe de string formatter en rétro compatibilité pour les faignants comme moi, ce serait sympa
Il est toujours possible, avec Python 3.0, d'utiliser l'ancienne syntaxe pour le formatage des chaines de caractères.

Thierry
__________________
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

FAQ-Python FAQ-C FAQ-C++

+
Thierry Chappuis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 11h14   #32
arnaudk
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 38
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 38
Points : 29
Points : 29
En fait, je n'ai pas compris pourquoi cette modification des strings formatter était nécessaire.
arnaudk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 11h24   #33
cho7
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 33
Points : 33
Citation:
Envoyé par Thierry Chappuis Voir le message
Il est toujours possible, avec Python 3.0, d'utiliser l'ancienne syntaxe pour le formatage des chaines de caractères.

Thierry
Au temps pour moi. Le jour où j'avais testé le bidule j'avais dû écrire un print sans parenthèse ou une autre erreur débile, et j'ai cru que ça venait du %

Une chose est sûre, à terme il sera supprimé et sera marqué comme deprecated dès la version 3.1 : "The plan is to eventually make this the only API for string formatting, and to start deprecating the % operator in Python 3.1."

Tout ça pour dire que je comprend la philosophie globale du truc, du pourquoi string.format est plus puissant, plus "fonction", etc, mais globalement pour les petits scripts rapide, % marche très bien et il est carrément plus rapide à saisir. Je lui trouve le même interêt que les décorateurs de fonction par exemple. C'est du sucre syntaxique plaisant à manipuler, contrairement à string.format
cho7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 11h27   #34
Thierry Chappuis
Expert Confirmé Sénior
 
Avatar de Thierry Chappuis
 
Homme Thierry Chappuis
Enseignant Chercheur
Inscription : mai 2005
Messages : 3 481
Détails du profil
Informations personnelles :
Nom : Homme Thierry Chappuis
Âge : 36
Localisation : Suisse

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2005
Messages : 3 481
Points : 5 303
Points : 5 303
Citation:
Envoyé par arnaudk Voir le message
En fait, je n'ai pas compris pourquoi cette modification des strings formatter était nécessaire.
Pour proposer un outils encore plus puissant.

Thierry
__________________
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

FAQ-Python FAQ-C FAQ-C++

+
Thierry Chappuis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 12h04   #35
cho7
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 33
Points : 33
Citation:
Envoyé par Thierry Chappuis Voir le message
Pour proposer un outils encore plus puissant.

Thierry
Mais la philosophie de python était à la base de faire des trucs puissant avec des choses simples. Et on ne peut pas nier que la syntaxe % est beaucoup plus simple que la syntaxe du string.format, et que le % suffit à une grande majorité des cas usuels, si ? Je ne dis pas qu'il faut choisir l'un ou l'autre, mais qu'ils sont àmha complémentaires

Allez, je propose de créer un groupe Facebook "Je suis pour le maintien de l'opérateur % dans le langage python"
cho7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 12h32   #36
Matthieu Brucher
Rédacteur/Modérateur

 
Avatar de Matthieu Brucher
 
Matthieu Brucher
Développeur HPC
Inscription : juillet 2005
Messages : 9 703
Détails du profil
Informations personnelles :
Nom : Matthieu Brucher
Âge : 31
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur HPC
Secteur : Industrie

Informations forums :
Inscription : juillet 2005
Messages : 9 703
Points : 18 318
Points : 18 318
Aucune chance. Le dictateur a décidé que ça partirait.
Matthieu Brucher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 13h28   #37
cho7
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 33
Points : 33
Citation:
Envoyé par Matthieu Brucher Voir le message
Aucune chance. Le dictateur a décidé que ça partirait.
N'empêche, juste pour le fun : http://www.petitiononline.com/PyString/petition.html



go go go
cho7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 13h58   #38
Thierry Chappuis
Expert Confirmé Sénior
 
Avatar de Thierry Chappuis
 
Homme Thierry Chappuis
Enseignant Chercheur
Inscription : mai 2005
Messages : 3 481
Détails du profil
Informations personnelles :
Nom : Homme Thierry Chappuis
Âge : 36
Localisation : Suisse

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2005
Messages : 3 481
Points : 5 303
Points : 5 303
L'ancienne mouture du formatage des chaînes semble surtout naturelle inconditionnels du C. De manière générale, je suis plutôt favorable à la nouvelle syntaxe.

Thierry
__________________
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

FAQ-Python FAQ-C FAQ-C++

+
Thierry Chappuis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 14h22   #39
dapounet
Membre expérimenté
 
Avatar de dapounet
 
Étudiant
Inscription : juillet 2007
Messages : 472
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2007
Messages : 472
Points : 557
Points : 557
Bonjour,

Citation:
Envoyé par cho7 Voir le message
Mais la philosophie de python était à la base de faire des trucs puissant avec des choses simples. Et on ne peut pas nier que la syntaxe % est beaucoup plus simple que la syntaxe du string.format, et que le % suffit à une grande majorité des cas usuels, si ? Je ne dis pas qu'il faut choisir l'un ou l'autre, mais qu'ils sont àmha complémentaires
Je ne trouve pas que c'est logique de devoir connaître les tuples et la surcharge d'opérateur pour pouvoir comprendre comment le formatage peut fonctionner.

Citation:
Envoyé par Thierry Chappuis Voir le message
L'ancienne mouture du formatage des chaînes semble surtout naturelle inconditionnels du C.
Gros +1, c'est un truc qui m'avait choqué quand je m'étais mis au Python.
__________________
:wq
dapounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2009, 14h35   #40
cho7
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 33
Points : 33
Citation:
Envoyé par dapounet Voir le message
Bonjour,


Je ne trouve pas que c'est logique de devoir connaître les tuples et la surcharge d'opérateur pour pouvoir comprendre comment le formatage peut fonctionner.
Quand j'avais découvert le python, je n'avais pas cherché à savoir ce que je mettais précisément derrière le %

Il y avait une syntaxe, je l'ai suivie. c'est tout hein
cho7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h13.


 
 
 
 
Partenaires

Hébergement Web