Bonjour
J'aime bien ton état d'esprit. Tu te donnes un exercice puis tu le réalises. C'est comme ça qu'on progresse.
Il y a toutefois un truc qui me gêne immédiatement: ta fonction isFree(). Elle boucle sur la liste, mais quoi qu'il arrive, sort True ou False dès la première itération. Bref elle ne traite que le premier élément de la liste. Tu l'aurais écrite ainsi
def isfree(numberWanted): return numbers[0]["value"] == numberWanted ce serait la même chose. C'est peut-être voulu mais dans ce cas je me demande à quoi sert d'avoir une liste ? D'ailleurs plus je lis le code plus je me demande à quoi sert cette fonction...
Ensuite je vois que dans ton code existent des possibilités que le nombre devienne None, mais tu ne dis nulle part le but de cette manipulation. Mais si ensuite ton code finit par faire un truc style
None+1...
Ensuite on ne teste jamais "== True", on teste directement l'état booléen. Parce qu'un truc peut être vrai sans être réellement égal à True et dans ce cas le test ne fonctionne pas
1 2 3 4 5 6
| >>> res=123
>>> print("ok" if res == True else "bad")
bad
>>> print("ok" if res else "bad")
ok
>>> |
De plus perso j'utiliserais autre chose que False et True pour symboliser l'incrémentation et décrémentation. Peut-être "<" et ">" seraient plus appropriés.
Et le souci principal qui fait que ça continue c'est la boucle de ton code principal qui ne s'arrête jamais. Donc tu ne la fais pas s'arrêter, faut pas te plaindre qu'elle ne s'arrête pas...

Partager