Rechercher : dans
Par :

Python - erreur

Dernière réponse le 12 nov 2008 à 15:45:47 Waylander, le 12 nov 2008 à 14:07:38 
 Signaler ce message aux modérateurs

Bonjour,
Je suis un tout nouveau débutant dans le langage Python, j'avance doucement en essayant de comprendre ce que je fais mais... dans un tout petit bout de code, j'ai une erreur avec une variable. Oo

En fait il y a un truc que je comprends pas. Mon bout de code est le suivant :

a=586
if a < 1000:
print "a est inferieur a 1000"
elif a >= 1000:
print "a est superieur ou egal a 1000"
else:
print "a n'est pas un chiffre !"
if a == 2786:
print "a est egal a 2786"


En gros. Donc si je mets comme valeur un chiffre à la variable a, ça fonctionne bien, le message qui apparaît est le bon, mais si par exemple, j'ai envie d'attribuer un mot à la variable a ?
En principe, la condition "else" devrait s'activer non ? Et le message "a n'est pas un chiffre" devrait apparaître non ?

Le problème, c'est que par exemple, si je mets la valeur "salut" à la place de 586 pour a, le message qui apparaît est :
"a est supérieur ou égal à 1000"
C'est-à-dire la deuxième condition...

C'est normal ? Pourquoi c'est pas la condition "else" qui est respectée ?


Voili voilou c'est un problème que je n'arrive pas trop à comprendre là, si quelqu'un pouvait m'éclairer là-dessus ce serait super cool, merci d'avance. ;)

Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « Python erreur » dans :
Codes d'erreur de Windows VoirLa liste ci-dessous détaille les codes d'erreur s'affichant dans les boîtes de dialogue sous Windows : Code Description ------------------------ 1 Fonction incorrecte. 2 Le fichier spécifié est introuvable. 3 Le chemin d'accès spécifié...
[IE] Erreur de script / Effectuer un débogage VoirDe temps en temps, lorsque vous naviguez sur le Net et que vous chargez une page Web, un message d'erreur de script survient : Une erreur est survenue. Une erreur est survenue sur le script de cette page. Souhaitez-vous effectuer un débogage...
[MSN] Erreur de connexion (80048820) VoirErreur 80048820 Avant toute modification sur votre système, vérifiez l'état des serveurs MSN Messenger, afin de déterminer si le problème ne vient pas de là : http://messenger.msn.com/Status.aspx?mkt=fr-fr Il peut également s'agir d'un problème...
Le contrôle des erreurs VoirLe contrôle d'erreurs Le codage binaire est très pratique pour une utilisation dans des appareils électroniques tels qu'un ordinateur, dans lesquels l'information peut être codée grâce à la présence ou non d'un signal électrique. Cependant le...

1

kilian, le 12 nov 2008 à 14:25:00

En python, une chaine est toujours plus grande qu'un entier. Ne me demande pas pourquoi :-/
Essaie ça:

if type(a) == str:
    if a.isdigit():
        a = int(a)
   else:
        print "pas un nombre"
        return #Si dans une fonction

if a < 1000:
    print "a est inferieur a 1000"
else:
    print "a est superieur ou egal a 1000"
    if a == 2786:
        print "a est egal a 2786"

Le gâteau est un mensonge!

Répondre à kilian

2

Waylander, le 12 nov 2008 à 14:36:03

Hmm quand j'essaye ton code cela ne fonctionne pas, la console s'ouvre une fraction de seconde et se ferme direct, je ne sais pas pourquoi... :s
Ca marche chez toi ?

Sinon, je reposte mon code initial bien indenté (tout moche dans le premier post :p) :

if a < 1000:
    print "a est inferieur a 1000"
elif a >= 1000:
    print "a est superieur ou egal a 1000"
else:
    print "a n'est pas un chiffre !"
if a == 2786:
    print "a est egal a 2786"



En tout cas tu viens quand même de m'apprendre un truc : une chaîne de caractères est plus grande qu'un entier, je savais pas ça^^

Répondre à Waylander

3

kilian, le 12 nov 2008 à 14:42:36

Ah non, faut mettre ça dans une fonction :-)

def main(a):
    if type(a) == str:
        if a.isdigit():
            a = int(a)
       else:
            print "pas un nombre"
            return #Si dans une fonction

    if a < 1000:
        print "a est inferieur a 1000"
    else:
        print "a est superieur ou egal a 1000"
        if a == 2786:
            print "a est egal a 2786"

main(a)

Après au lieu de main(a) tu peux mettre main(1) ou main("prout") etc... Le gâteau est un mensonge!

Répondre à kilian

4

Waylander, le 12 nov 2008 à 15:08:11

Erf j'ai eu beau essayer et réessayer ton code, ça ne change toujours pas par rapport à l'autre. :s
Je sais vraiment pas à quoi c'est dû là... :s

Répondre à Waylander

5

kilian, le 12 nov 2008 à 15:10:13

Quand on lance un programme console (comme c'est le cas ici, cf: fenêtre noire), quand il se termine, la fenêtre se ferme toute seule.
Si tu veux simuler une pause à la fin (juste à appuyer sur enter), t'as qu'à rajouter ceci tout à la fin:

raw_input()
Le gâteau est un mensonge!

Répondre à kilian

6

Waylander, le 12 nov 2008 à 15:14:43

Ouais ouais, ça je sais, mon raw_input est bien mis à la fin après le main(a), j'ai vérifié : pourtant la fenêtre se ferme quand même, comme quand il y a une erreur dans le code, je sais pas pourquoi... oo

Répondre à Waylander

7

kilian, le 12 nov 2008 à 15:16:24

Lance ton script depuis la console, tu auras le temps de voir l'erreur.
=> Démarrer / Executer / "cmd" /
cd cheminvers_ton_script_python
python tonscript.py

Il faut que python soit dans ta variable d'envirronnement PATH. Le gâteau est un mensonge!

Répondre à kilian

8

Waylander, le 12 nov 2008 à 15:30:48

J'ai essayé de faire comme tu dis, par contre quand tu dis :

cd cheminvers_ton_script_python
python tonscript.py

Il faut que ce chemin d'accès soit juste avant ce que je tape dans la console ?
Parce que quand j'ouvre la console, ce qui est indiqué par défaut c'est :

C:\Documents and Settings\Compaq_Propriétaire> Et là je dois taper mon code

Si je tape direct python test2.py (test2.py étant mon fichier python que j'ai fait pour tester le truc), ils me disent qu'ils ne peuvent pas ouvrir ce fichier. Et je n'arrive pas à rajouter le chemin d'accès jusqu'à mon fichier, vu que je ne peux pas modifier le chemin prédéfini... comment on fait exactement ? Oo

En tout cas merci beaucoup à toi de ta patience, j'suis un peu un noob chiant, c'est sympa de ta part de m'aider.^^

Répondre à Waylander

9

Waylander, le 12 nov 2008 à 15:31:45

Ah et quand tu dis :

Il faut que python soit dans ta variable d'envirronnement PATH.


J'ai rien compris. O_O
Que veux-tu dire ?? XD

Répondre à Waylander

10

Waylander, le 12 nov 2008 à 15:35:29

Ah en fait si, j'ai déplacé mon fichier python dans le chemin d'accès prédéfini, et le code d'erreur qu'ils m'affichent est :

File "test2.py", line 7
    else:
      ^
IndentationError: unindent does not match any outer indentation level


Donc ça voudrait dire que j'ai un problème d'indentation à la ligne 7 c'est ça ?
Je vais voir de quoi il s'agit et je te dis si j'ai des nouvelles lol^^

(en tout cas merci encore ;))

Répondre à Waylander

12

kilian, le 12 nov 2008 à 15:37:28

Oui je les ai fait à l'arrache mes indentations.
Il faut ça soit 4 espaces ou bien une tabulation pour chaque indentation. Le gâteau est un mensonge!

Répondre à kilian

11

kilian, le 12 nov 2008 à 15:36:33

Alors attends.
Il est où ton script?
On va faire simple: tu le mets sur le bureau et tu tapes ça:

cd %userprofile%\Bureau
python monscript.py

Dis moi ce que ça donne. Normalement il faudra encore modifier la variable PATH mais on va d'abord voir si ça marcyhe comme ça. Le gâteau est un mensonge!

Répondre à kilian

13

Waylander, le 12 nov 2008 à 15:40:32

Hey en fait c'est bon, j'ai refait correctement l'indentation de la ligne 7 avec la condition "else" et maintenant ça marche nikel !!

Merci beaucoup de ton aide Kilian, franchement c'est cool. ;)

Merci encore et bonne soirée ! ;);)


Waylander

Répondre à Waylander

14

kilian, le 12 nov 2008 à 15:43:34

Bonne continuation :-) Le gâteau est un mensonge!

Répondre à kilian

15

 Waylander, le 12 nov 2008 à 15:45:47

Merci beaucoup à toi. ;)
"Problème résolu", donc.^^

Répondre à Waylander
Collection CommentÇaMarche.net