Pyromaths pour Python 3

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1130
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Pyromaths pour Python 3

Message par Jérôme » 01 oct. 2009, 00:56

Bonsoir,
j'ai tenté d'adapter Pyromaths à la version 3.0 de Python.
Sous Ubuntu, il a fallu compiler et installer Sip et PyQt4.6 ainsi que lxml.
Ensuite a commencé le long travail d'adaptation, le script 2to3 étant loin d'être complet. Dans les différences, la commande / effectue maintenant des divisions décimales, même si les nombres à diviser sont entiers. Il faut donc utiliser // pour obtenir le quotient entier d'une division.
J'ai publié la version pour Python 3 sur git dans une branche nommée python3. Si vous voulez tester, vous êtes les bienvenus.

Code : Tout sélectionner

git clone ssh://git@pyromaths.org:7422/pyromaths.git
cd pyromaths
git checkout --track -b python3 origin/python3
Il est probable que ça fonctionne aussi avec Python 3.1, mais je ne l'ai pas essayé. Si vous en avez le courage, relisez les fiches en détail afin de trouver d'éventuelles erreurs (il y en a sur l'exercice somme de fractions niveau 4e, je viens de m'en apercevoir).

Je dois dire que la gestion des caractères accentués est un vrai bonheur dans cette version. Tout est codé en utf-8, donc il n'y a jamais de problème. Ça va faire plaisir à Arnaud ! ;)
À bientôt.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Pyromaths pour Python 3

Message par Arnaud » 01 oct. 2009, 23:23

Bravo, quel boulot !
J'ai ajouté et publié mes tests actuels, qui seront sans influence sur ton travail.
Ce n'est qu'à l'état de brouillon ! Et pas encore compatible python 3.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1130
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths pour Python 3

Message par Jérôme » 01 oct. 2009, 23:50

Il est trop tard pour que je regarde en détail. Cela dit, tu t'es planté de branche. Tu as publié tes modifs dans la branche python3... ;)
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Pyromaths pour Python 3

Message par Arnaud » 02 oct. 2009, 00:07

Non, c'était volontaire : autant tout mettre dans la version en restructuration.
Et c'est bien pour cela que j'ai précisé que ce n'était pas encore compatible python 3 ;)

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1130
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths pour Python 3

Message par Jérôme » 02 oct. 2009, 15:25

Bon, alors finalement, j'ai supprimé la branche Python3. En effet, la prochaine version d'Ubuntu (karmic) ne proposera toujours pas PyQt4 pour python3. Je ne vois donc pas l'intérêt de passer à Python3 si l'utilisateur lambda ne peut utiliser Pyromaths en n'utilisant que son gestionnaire de paquets. J'ai donc légèrement modifié mon travail pour le rendre compatible avec Python 2.6.
Ce qu'il faut retenir pour conserver au maximum la compatibilité avec python3 :
  • la commande print est à présent une fonction. Pour l'utiliser :

    Code : Tout sélectionner

    print(u"Jérôme est très sympa !")
  • comme noté ci-dessus, pour utiliser une chaine de caractères avec accents (en utf-8), il faut écrire un u devant les guillemets.
    Il n'y a donc aucun problème pour utiliser les caractères accentués dans Pyromaths. Par conséquent, les fiches LaTeX peuvent utiliser les caractères éèàô au lieu des \'e\`e\`a\^o. :)
    Les autres chaines n'ont pas besoin du u.
  • les fichiers créés par Pyromaths sont tous en utf-8 (config, modèles et fiches d'exercices).
  • Pour obtenir la partie entière du quotient de deux nombres entiers, utilisez

    Code : Tout sélectionner

    a = b // c
    Ça fonctionne sous Python 2.6 avec un seul slash, mais plus sous Python 3.
Il reste (au moins) un problème : un nom de fichier avec accent fait planter Pyromaths.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Pyromaths pour Python 3

Message par Arnaud » 02 oct. 2009, 20:04

Jérôme a écrit :Bon, alors finalement, j'ai supprimé la branche Python3. En effet, la prochaine version d'Ubuntu (karmic) ne proposera toujours pas PyQt4 pour python3. Je ne vois donc pas l'intérêt de passer à Python3 si l'utilisateur lambda ne peut utiliser Pyromaths en n'utilisant que son gestionnaire de paquets. J'ai donc légèrement modifié mon travail pour le rendre compatible avec Python 2.6.
C'est vrai qu'ubuntu, c'est la norme...

Bon, et le deb ne peut pas contenir un fichier compilé ?
J'espère que tu n'as pas supprimé ton travail...car à la limite, la version python 3 n'était pas forcément prévue pour tout de suite, on pouvait travailler en parallèle.

Répondre