Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 27-11-2009 20:42:33

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

[Python] problème de syntaxe je crois

Bonjour,

J'ai téléchargé l'interpréteur Python sur le site officiel et j'apprends avec le tuto de Swinnen.

Mais certaines syntaxes qu'il utilise sont différentes de celle que je peux utiliser.

Par exemple
pour afficher il utilise

print n

moi je suis obligé mettre des parenthèses

print (n)

ou alors pour importer le module tkinter (une interface graphique)
Swinnen met une majuscule

from Tkinter import *

moi si je met la majuscule ça marche pas
et quand je fais:

input()

c'est converti automatiquement en string
alors que dans le tuto, Swinnen dit que ça reconnais le type de variable

et ya plein d'autre truc, mais j'ai trouvé des solutions.
Si quelqu'un à une réponse je veux bien mais ce n'est pas mon principal problème

Je viens d'attaquer le chapitre sur les fichiers et je n'arrive pas à ouvrir les fichiers
voila ce qui ce passe:

>>> from os import*
>>> obFichier = open('monfichier','a')
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    obFichier = open('monfichier','a')
TypeError: an integer is required

apparament, il manque un integer quelque part
alors j'ai essayé d'en rajouter un:

>>> obFichier = open(0,'monfichier','a')
Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    obFichier = open(0,'monfichier','a')
TypeError: Can't convert 'int' object to str implicitly
>>> obFichier = open('monfichier',0,'a')
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    obFichier = open('monfichier',0,'a')
TypeError: an integer is required
>>> obFichier = open('monfichier','a',0)
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    obFichier = open('monfichier','a',0)
TypeError: an integer is required
>>>

mais il n'y a aucun résultat satisfaisant

alors si quelqu'un a une idée...


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

#2 27-11-2009 21:13:43

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 948

Re : [Python] problème de syntaxe je crois

Bonsoir,

Tu as téléchargé la version 3.1 de Python d'assez loin postérieure au bouquin de Swinnen...
Swinnen ne pouvait avoir connaissance de Python 3.x quand il a écrit son bouquin, donc il y a des choses à adapter.
Le print par exemple est devenu une fonction, ce n'est plus print, mais print (n)...
Autre exemple que je connais :
* Avec Python 2.6 : print  9/2 renvoie 4...
* Avec Python 3.x print(9/2) renvoie 4.5 Pour avoir 4 on fait print(9//2)... Et avec 2.x, pour avoir le quotient décimal, il fallait écrire print 9/2.0 ou print 9.0/2...
* Oui, l'import de Tkinter est différente...
* Avec Python 2.x, il était recommandé de ne pas utiliser input (qui pouvait ouvrir la voie à l'exécution d'un code malveillant, mais raw_input qui donnait un string
* Avec Python 3.x, c'est corrigé, le raw_input est devenu input et il y a eu fusion des deux.

En résumé Swinnen écrit pour Python 2.x = plein de surprises avec 3.x...

Deux options :
1. Tu collationnes toutes les différences et tu continues : the show must go on !...
2. Tu vires ton Python 3.x, tu DL le 2.6.2 (ou 2.6.3 ? s'il existe) mais pas le 2.6.4 (version bêta) et tu continues sans surprises avec Swinnen. Quitte à ce quand tu seras assez familiarisé avec Python, tu repasses en 3.x.
Pour une aide plus efficace, va voir le forum Python sur developpez.net.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 28-11-2009 09:19:37

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : [Python] problème de syntaxe je crois

Merci beaucoup,

Je pense que je vais revenir à la version 2.6
J'en ai mare d'essayer de trouver des bidouillage à chaque différence entre les versions

Mais je n'ai trouvé que la version 2.6.4, rien d'anterieur a part 2.5
c'est vraiment embetant?

Je vais faire un tour sur developpez
encore merci


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
vingt trois moins dix-neuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums