Presque. Mon exemple parlait de “est-ce que c’est pair ou impair”, donc “est-ce que c’est divisible”.
J’essayais de te donner des pistes sans pour autant te faire ton devoir.
Si tu veux t’y prendre comme tu le décris, de 0+0 à 9+9 ça va être long, très long :
def add(a, b):
if a == "0" and b == "0":
return "0"
if a == "0" and b == "1":
return "1"
if a == "0" and b == "2":
return "2"
if a == "0" and b == "3":
return "3"
if a == "0" and b == "4":
return "4"
if a == "0" and b == "5":
return "5"
if a == "1" and b == "0":
return "1"
if a == "1" and b == "1":
return "2"
if a == "1" and b == "2":
return "3"
if a == "1" and b == "3":
return "4"
if a == "1" and b == "4":
return "5"
if a == "1" and b == "5":
return "6"
if a == "2" and b == "0":
return "2"
if a == "2" and b == "1":
return "3"
...
...
Là c’est l’ordinateur qui te fait travailler, et tu va le détester. Non il faut faire travailler l’ordinateur (tout en respectant le sujet, que je n’ai pas lu…).
Je pense que quand tu suit mon conseil (de faire la chose sur papier en te regardant faire avant de l’implémenter), il faut peut-etre que tu te mette dans la place d’un enfant.
Un enfant n’apprend pas par cœur combien font 8 + 9, et pourtant il y arrive, donc ton programme n’a pas à savoir par coeur combien font 8 + 9.
Tu dois donc réussir a comprendre comment l’enfant fait, et faire faire la même chose à Python.
Un jeune enfant, face à 3 + 2 va partir de zéro, ouvrir trois doigts d’une main, deux doigts de l’autre, et les compter : “un, deux, trois” en comptant les trois doigts d’une main, puis “quatre cinq” en comptant deux doigts de l’autre main, en Python ça ressemble à ça :
def add(a, b):
total = "0" # L'enfant part de zéro.
while a != "0": # Il compte les doigts de la première main jusqu'à ce qu'il n'y en ai plus.
total = successor(total) # A chaque chiffre qu'il prononce, il passe au suivant.
a = predecessor(a) # Et donc il y a un doigt de moins à compter sur cette main.
while b != "0": # Pareil avec l'autre main
total = successor(total)
b = predecessor(b)
return total
Bon ça nécessite d’implémenter successor
et predecessor
(je te laisse faire).
Pour continuer sur cette lancée, tu peux te mettre à la place d’un autre enfant, un peu moins jeune.
Un enfant un peu moins jeune va “surcompter”, c’est à dire qu’au lieu de compter “un deux trois” pour arriver à trois il va partir de trois directement. Pour trois plus deux il va juste utiliser deux doigts et dire “quatre cinq”. C’est plus simple pour lui, et c’est donc plus facile à implémenter en Python :
def add(a, b):
while b != "0": # Tant que sur l'autre main il y a des doigts à compter...
a = successor(a) # On compte.
b = predecessor(b) # Et donc il y a un doigt de moins à compter.
return a
Après j’ignore si j’ai bien compris ton sujet, je ne l’ai pas lu.
[shameless advertisment]
Si tu manque simplement de pratique en rédaction de Python tu peux t’entrainer sur https://hackinscience.org, c’est des exercices beaucoup plus simple pour te faire la main avant de t’attaquer à la calculatrice.
[/shameless advertisment]