Bonjour, voilà je dois écrire une fonction traduire(nombre,n) qui traduit le nombre en une chaîne de n caractères qui contiendra le nombre entier. Si n est supérieur au nombre de chiffres composant le nombre, elle sera complétée par des zéros.
Par exemple :
traduire(12,4) donne '0012'
traduire(1234,4) donne '1234'
Je vais tout d'abord vous montrer mon programme (qui fonctionne soit dit en passant en bidouillant) et vous exposer ensuite où se situe le problème car en réalité il ne fonctionne pas ... oui oui c'est paradoxal ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 def traduire(nombre,n): # traduit le nombre en une chaine de n caracteres qui contiendra le nombre entier if n<=len(nombre): print nombre if n>len(nombre): d=n-len(nombre) nombre=d*'0'+nombre print nombre # Attention saisir le nombre avec des quotes nombre=input('Entrez le nombre a convertir :') n=input('Entrez le nombre de position sur lequel vous souhaitez ecrire le chiffre :') print traduire(nombre,n)
En fait cette version ne marche que dans la mesure où quand je teste ce programme, les valeurs 12 ou 1234 de l'exemple, je les rentre directement en tant que chaines de caractères (ie avec des quotes) et non pas en tant que nombres. Du coup ca fonctionne correctement. Autrement il y a erreur, eh oui, la fonction len ne marche pas sur les entiers !! Quelqu'un voit-il une méthode de résoudre mon problème d'une meilleure manière ?
PS : je ne suis pas informaticien, alors une méthode "soft" est la bienvenue merci
Partager