A partir de ce que je proposais dans mon dernier Post:
J'ai rajouté deux fonction de tests (dont un petit rappel du début de votre cursus scolaire )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 # Liste des termes du langage des Shadocks # liste globale réutilisable dans d'autres calculs Shads=["GA","BU","ZO","MEU"] def convertBase10toShadocks(n): q=n #variable qui contiendra le quotient de la division euclidienne n//4 r=0 #variable qui contiendra le reste de cette division. Base4=[] #liste qui contiendra la conversion du nombre base 10 en base 4 if q==0: #permet de traiter le cas où n=0 Base4.append(0) #valeur 0 entre dans liste Base4 else: while q>0: q=n//4 #q reçoit le quotient de la division euclidienne n//4 r=n%4 #r reçoit le reste de la division n=q #n reçoit la valeur du quotient q Base4.append(r) #la valeur du reste r entre dans liste Base4 Base4.reverse() # On retourne la liste return [Shads[i] for i in Base4] #On affecte la valeur du rang i de la liste Shads à la valeur correspondante de la liste Base4, et on stocke ceci dans la liste VocShad def Test1(): n = int(input("Entrez le nombre en base 10 : ")) print(convertBase10toShadocks(n)) def Test2(): print "Table de multiplication de BU MEU (7) en shadok)" for n in range(10): print convertBase10toShadocks(n+1), "X", convertBase10toShadocks(7), "=", convertBase10toShadocks(7*(n+1))
Attention : Votre fonction de calcul retourne une liste et pas une chaîne de caractère, est-ce suffisant par rapport à la demande de votre prof ?
2 formats de chaînes peuvent convenir :
- les chiffres sont les uns après les autres, leur orthographe n'amène pas d'ambigüité
- les chiffres sont séparés par des espaces, c'est plus lisible mais il faut choisir une convention pour écrire 2 nombres Shadock l'un à côté de l'autre.
Pour transformer une liste en chaîne, renseignez-vous sur la méthode Join applicable sur une chaîne et prenant en paramètre une liste, ainsi on a :
La convention choisie influera sur la façon d'écrire la fonction de conversion inverse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> " ".join(["1","2","3","4"]) '1 2 3 4' >>> "".join(["1","2","3","4"]) '1234'
Partager