Condition ne fonctionne pas
Résolu/Fermé
Amniote
Messages postés
1
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
12 juin 2019
-
Modifié le 17 juil. 2019 à 11:44
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 17 juil. 2019 à 13:26
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 17 juil. 2019 à 13:26
A voir également:
- Condition ne fonctionne pas
- Excel cellule couleur si condition texte - Guide
- Recherchev avec condition si ✓ - Forum Excel
- Condition et excel - Guide
- Excel soustraction avec condition ✓ - Forum Excel
- Je ne suis pas un robot recaptcha confidentialité - conditions ✓ - Forum Windows 8 / 8.1
1 réponse
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
Modifié le 17 juil. 2019 à 13:26
Modifié le 17 juil. 2019 à 13:26
Bonjour,
Juste pour comprendre, si ton fichier contient disons :
... est-ce qu'on est sensé retourner toutes les chaînes :
Est-ce pour ça que tu as bridé la longueur à 4 ?
Si j'ai bien compris ce que tu veux faire, voilà à quoi pourrait ressembler ton programme (je laisse de côté la partie parsing que tu as déjà faite) :
Note en particulier que, pour que l'appel récursif marche bien, tu ne peux pas te contenter de passer par référence
Bonne chance
Juste pour comprendre, si ton fichier contient disons :
1 2
2 1
... est-ce qu'on est sensé retourner toutes les chaînes :
1 2
1 2 1
1 2 1 2
...
Est-ce pour ça que tu as bridé la longueur à 4 ?
Si j'ai bien compris ce que tu veux faire, voilà à quoi pourrait ressembler ton programme (je laisse de côté la partie parsing que tu as déjà faite) :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from pprint import pprint PAIRS = [ (1, 4), (1, 6), (4, 9), (6, 9), (9, 33), (9, 66), (4, 1), (6, 1), (9, 4), (9, 6), (33, 9), (66, 9), ] def make_chains_rec(chain, pairs, limit, res): if len(chain) == limit: return last = chain[-1] if len(chain) >= 1 else None for pair in pairs: (p1, p2) = pair if last is None or p1 == last: next_chain = list(chain) next_chain.append(p2) res.append(next_chain) make_chains_rec(next_chain, pairs, limit, res) def make_chains(pairs, limit = 4): chain = list() res = list() make_chains_rec(chain, pairs, limit, res) return res pprint(make_chains(PAIRS))
Note en particulier que, pour que l'appel récursif marche bien, tu ne peux pas te contenter de passer par référence
chain, il faut faire un passage par recopie. C'est d'ailleurs peut-être la cause de ton bug (je n'ai pas pris le temps de détailler ton code).
Bonne chance