prob d'indentation :( [resolu] - Python - Programmation
Marsh Posté le 20-02-2003 à 12:05:47
Et lorill qui est en vacances ...
Marsh Posté le 20-02-2003 à 12:09:56
Zut moi qui pensait lui faire plasir.
Mais qu'il se rassure il n'a pas fini avec moi, vu le boulet que je suis.
Marsh Posté le 20-02-2003 à 12:12:03
Amsterdam, c'est la femelle du hamster ?
Marsh Posté le 20-02-2003 à 12:15:03
Heu nan c'est une ville.
Joueur rejoue....
Salut walli.
Marsh Posté le 20-02-2003 à 12:29:07
tu sais qu'en python l'indentation défini les bloc (comme les {} ou les begin-end) ???
Marsh Posté le 20-02-2003 à 12:37:44
j'ai trouvé: tes tabulations sont crades, y a plein d'espace parasites, donc la synthaxe est incorrecte. change d'editeur de texte ou configure le pour avoir des tabulations dures (hard tabs). je ne peux que te conseiller t'utiliser idle
Marsh Posté le 20-02-2003 à 12:44:06
J'ai utilisé IDLE pour l'écrire mais je sais pas trop comment faire.
Sinon dans IDLE est il possible d'augmenter la taille de la police, parce que là c'est vraiment petit.
PS: je sais que c'est un problème d'indentation, d'ou mon titre.
Marsh Posté le 20-02-2003 à 12:49:52
ben moi j'ai pris ton code, j'ai supprimé l'indentation aux lignes ou il y avait des problèmes, puis je les ai refaites et plus de problème
Marsh Posté le 20-02-2003 à 14:09:13
Désolé mais chez moi ca ne marche pas.
Petite question que puis-je mettre au même niveau qu'un def ?
Les print
le if
le choix=
Marsh Posté le 20-02-2003 à 14:38:17
def base2_base10(): |
Quand j'écrit çà et que je tape 1 au deuxième choix le prog s'arrête sans retourner au début de la fonction.
Par contre au début j'ai bien l'invite du début de la fonction.
Marsh Posté le 20-02-2003 à 14:50:59
tu vois bien que t'as des espaces qui trainent
au meme niveau que le def tu peut mettre des varaibles globales,d 'autres fonctions et le "main"
je crois que le vrai problème c'est que tu n'as pas compris l'importance de l'indentation
Code :
|
Marsh Posté le 20-02-2003 à 15:23:24
Ok merci c'est bon c'est le depart() qui manquait en bas. pataper
Sinon je vais essayer les modifs que tu m'as montrées.
Enfin j'ai quand même survécu à mon premier prog en python.
A+ pour de nouveaux problèmes.
PS: l'indentation n'a pas fini de me faire ch... je pense.
Marsh Posté le 20-02-2003 à 21:34:16
Si je fait:
del total[-1]
L'interpréteur me sort:
object doesn't support item deletion.
Une idée ?
Marsh Posté le 20-02-2003 à 21:44:06
ça doit etre par ce que ta varaible est une string (immuable) et pas une list. autant pour moi j'avais pas vu
d'ailleurs pourquoi garder une représentation textuelle et pas passé à un type entier?
en général, si on veux modifier des sequences de caracteres un nombre de fois important (ou des tuples), on passe au type list
Marsh Posté le 20-02-2003 à 21:53:10
ou passe en int. au lieu de supprimer un caractere, tu divises par 10
Marsh Posté le 20-02-2003 à 21:57:52
Question idiote, pourqoi par dix ?
ps: c'est bon j'ai trouvé.
ps2: je fatigue moa.
Marsh Posté le 20-02-2003 à 22:05:41
amsterdam a écrit : Question idiote, pourqoi par dix ? |
si tu fais base2 vers base10, tu divise par 10
si tu fais base10 vers base2, tu divise par 10
Marsh Posté le 20-02-2003 à 22:22:42
Ok je commence la conversion base10>base2 maintenant que j'ai trouvé l'intruction pass.
Merci encore.
Marsh Posté le 20-02-2003 à 22:36:53
pour transformer une string en une list de caractere, moi je ferais
map(None, "Hello" )
Marsh Posté le 20-02-2003 à 23:02:51
Je viens de m'apercevoir que je l'avait déjà dans mon prog.
Marsh Posté le 23-02-2003 à 15:04:17
Rassures toi vu le boulet que je suis, tu auras certainement l'occasion de te refaire.
Marsh Posté le 20-02-2003 à 12:04:15
Salut.
Voilà mon problème, j'ai fait un petit prog en python qui ne se comporte pas comme il devrait.
En changeant l'indentation je peux corriger une partie mais dans ce cas çà commence
à merder plus loin.
Le code en question:
def depart():
'debut de prog'
print 'Choix possibles'
print 'Conversion base2>base10 tapez: 1'
print 'Conversion base10>base2 tapez: 2'
print 'Quitter tapez: 0'
choix=raw_input('Entrez votre choix: ')
if choix == "1":
base2_base10()
def base2_base10():
total=raw_input('Veuillez entrer un nombre en base 2:')
cpt_rang = 1
resultat = 0
cpt_total = len(total)
while cpt_total > 0: #tant que il reste un caractere dans la variable
chiffre = total[-1:]
resultat = int(chiffre) * cpt_rang + resultat
total = total[:-1]
cpt_total = cpt_total -1
cpt_rang = (cpt_rang * 2)
print resultat
choix=raw_input('Pour recommencer tapez 1 sinon tapez 2 ')
if choix == "1":
base2_base10()
else:depart()
J'ai fait des recherches mais n'ai rien trouvé de clair sur l'indentation.
Message édité par amsterdam le 20-02-2003 à 16:19:45