Fonctionnement des listes

Résolu/Fermé
yamawi Messages postés 13 Date d'inscription lundi 28 février 2022 Statut Membre Dernière intervention 8 février 2024 - Modifié le 10 avril 2022 à 14:35
yamawi Messages postés 13 Date d'inscription lundi 28 février 2022 Statut Membre Dernière intervention 8 février 2024 - 10 avril 2022 à 15:18
Bonjour,
pour un problème de mathématiques, j'ai une liste de n hirondelles positionné sur positionné sur des files électriques [-k; 0] U [0; k]. On lance des grène sur une hirondelles pour qu'elle se déplace, sa nouvelle position est déterminé par la position de l'hirondelles avant elle + celle de l'hirondelle après elle - sa position actuelle. Si il n'y a pas d'hirondelle devant ou derrière elle, on considère la position de l'hirondelle avant ou après à 0. Je suis en train de faire un algorithme qui me dit toutes les possibilités de position d'hirondelles en fonction de de la position initial.
c'est assez dur à expliquer, si vous n'avez pas compris ce que j'ais dit vous pouvez voir l'exercice là, c'est le numéro 2 mais vous pouvez quand même me répondre sans avoir compris la consigne : https://tfjm.org/wp-content/uploads/2022/01/problemes-2022.pdf

je vous montre une version raccourci du programme qui montre le problème face au quel je me trouve.
a = [1, 5, 15]  # l'hirondelle 1 est sur le fil 1, l'hirondelle 2 est sur le fils 5 et la 3 est sur le fils 15
#  on lance une graine sur l'hirondelle 1
a[0] = 0 - a[0]  # je commence par soustraire la valeur de départ pour ne pas avoir à le faire après
try:
    a[0] += a[0 - 1]  # j'ajoute la position de l'hirondelle avant elle
except IndexError:  # si il n'y a pas d'hirondelle avant 
    a[0] += 0

try:
    a[0] += a[0 + 1]  # j'ajoute la position de l'hirondelle après elle
except IndexError:  # si il n'y a pas d'hirondelle après
    a[0] += 0

print(a)  # j'affiche les nouvelles positions des hirondelles
# j'aimerait que ça me retourne :
# 0 - a[0] = 0 - 1 = -1
# -1 + a[0 - 1] = -1 + 0 = -1
# -1 + a[0 + 1] = -1 + 5 = 4
# print([4, 5, 15])


mon problème est que a[0 - 1] ne m'affiche pas une erreur mais la dernière valeur de la liste.
Si qq connais une solution à mon problème peut-il m'aidé svp.
Configuration: Windows / Chrome 100.0.4896.79

2 réponses

jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
10 avril 2022 à 14:49
Bonjour,

Au lieu d'un try/except, faire un test, if ... <0
1
yamawi Messages postés 13 Date d'inscription lundi 28 février 2022 Statut Membre Dernière intervention 8 février 2024
10 avril 2022 à 15:18
Merci,
je vais donc au lieu d'utiliser un try/exept, je vais détecté si se sera négatif.
Merci beaucoup pour votre aide.
0