try:
left_break = signs_pos[dave - 1]
except IndexError:
left_error = True
try:
right_break = signs_pos[dave + 1]
except IndexError:
right_error = True
if left_error == True:
current_cal = user_input[:right_break]
elif right_error == True:
current_cal = user_input[left_break:]
else:
current_cal = user_input[left_break:right_break]
J'ai seulement commencé à regarder des fonctions d'essai et j'ai besoin de l'aide avec ceci. Qu'est-ce que je voudrais arriver est que si quand il essaie de trouver left_break et il donne une erreur, il sera mis à left_error être vrai. Mais si cela ne donne pas d'erreur, left_break sera positionné correctement. Lorsque le code s'exécute et que le code à droite ou à gauche ne donne pas d'erreur, il ne définit pas correctement left_break ou right_break.Essayez la fonction ne fonctionne pas correctement
Traceback (most recent call last):
File "C:\Users\Max\Desktop\MaxsCal.py", line 170, in <module>
current_cal = user_input[:right_break]
NameError: name 'right_break' is not defined
C'est l'erreur que je reçois sans la fonction try.
Traceback (most recent call last):
File "C:\Users\Max\Desktop\MaxsCal.py", line 157, in <module>
right_break = signs_pos[dave + 1]
IndexError: list index out of range
Les erreurs right_error et left_error ne seront pas vraies.
Il est un 'NameError' pas' IndexError' – JeD
Votre code ne gère pas la situation dans laquelle les deux déclarations 'try' exécutent le' l'exception 'partie. Avez-vous les variables 'left_break' et' right_break' définies 'False' avant cette partie du code? – Leva7
Cela peut être dû au fait que 'left_error' et' right_error' sont 'True' quand aucun des blocs' try' ne s'exécute, donc la première instruction 'if' est évaluée et trouve que' right_break' n'a pas été créé. –