Exercice python lycée
Yamine_1411
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
jee pee Messages postés 41559 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 41559 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,

Voici mon exercice que je dois rendre en 1ère spécialité sur du Python, j'ai fais un code que je trouve valide mais il ne marche pas, pourriez vous m'indiquer vos conseils ?
Les indentations ne se marquent pas mais je les ai faites !
modération : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icones pour les enrichissements du texte. Celle qui a cet aspect
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Voici mon exercice que je dois rendre en 1ère spécialité sur du Python, j'ai fais un code que je trouve valide mais il ne marche pas, pourriez vous m'indiquer vos conseils ?
def manhathanMaboul(N,M): amismax=0 amis=0 for i in range (len(M)): for k in range (len(M)): if M[i]<=M[k]<=(M[i]+N): amis=amis+1 if amis>amismax: amismax=amis return amismax
Les indentations ne se marquent pas mais je les ai faites !
modération : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icones pour les enrichissements du texte. Celle qui a cet aspect
<> ▼permet d'appliquer aux codes, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
A voir également:
- Exercice python lycée
- Citizen code python avis - Accueil - Outils
- Python pix ✓ - Forum Python
- Mot secret python pix ✓ - Forum Python
- Programme python ✓ - Forum Python
- Mot de passe administrateur pc lycée île de france - Forum Matériel & Système
3 réponses
Bonsoir
CCM, comme tous les sites de code qui se respectent disposent d'un outils pour mettre en forme le code (et donc conserver l'indentation), voir le texte et le lien (à lire attentivement) que jee pee a ajouté à la fin de ton message en le corrigeant.
Pour ton problème, selon ton énoncé M est un entier, tu ne peux donc ni récupérer sa longueur, ni l'indicer.
CCM, comme tous les sites de code qui se respectent disposent d'un outils pour mettre en forme le code (et donc conserver l'indentation), voir le texte et le lien (à lire attentivement) que jee pee a ajouté à la fin de ton message en le corrigeant.
Pour ton problème, selon ton énoncé M est un entier, tu ne peux donc ni récupérer sa longueur, ni l'indicer.
j'avais juste inversé N et M
Oui c'était le premier point et comme jee pee, je ne suis pas sûr de comprendre l'énoncé.
Sa question est pertinente, pour voir si nous comprenons comme toi.
Si ton prof t'as donné des précisions ou un jeu de données de correction (valeurs d'entrées et résultat associé) se serait bien de nous les communiquer.
Ok, j'avais essayé de rajouter une variable amismax qui stockerai du coup la valeur amis du tour de la boucle où il serait le plus haut , ce n'est pas la bonne solution ?
Je t'avoue que je suis un peu confus (je n'ai pas beaucoup d'experience en python je debute),la solution est à ma portée tu penses ?
Ou plutôt est-ce que je suis loin du bon résultat ?
Je t'avoue que je suis un peu confus (je n'ai pas beaucoup d'experience en python je debute),la solution est à ma portée tu penses ?
Ou plutôt est-ce que je suis loin du bon résultat ?
Tu es à une marche du bon résultat.
L’écriture d'un programme c'est une idée d'un processus (la tienne tient la route). Après cela ne fonctionne pas du premier coup, on attend une étincelle d'intelligence, ou le lendemain, ou on s'attelle à un travail de fond, le debug. Je suis toujours surpris dans les codes que l'on nous donne sur le forum de ne pas voir de print() pour comprendre ce qui se passe. On doit parfois en mettre après chaque ligne, pour voir où le programme passe et ce que contient chaque variable touchée.
Voilà ton code, qui pour l'exemple donné retourne 15. En une seule modification, mineure sur la forme, majeure sur la logique, il donne le 3 attendu. J'ai rajouté un print pour que tu t'interroges sur l'évolution des compteurs.
L’écriture d'un programme c'est une idée d'un processus (la tienne tient la route). Après cela ne fonctionne pas du premier coup, on attend une étincelle d'intelligence, ou le lendemain, ou on s'attelle à un travail de fond, le debug. Je suis toujours surpris dans les codes que l'on nous donne sur le forum de ne pas voir de print() pour comprendre ce qui se passe. On doit parfois en mettre après chaque ligne, pour voir où le programme passe et ce que contient chaque variable touchée.
Voilà ton code, qui pour l'exemple donné retourne 15. En une seule modification, mineure sur la forme, majeure sur la logique, il donne le 3 attendu. J'ai rajouté un print pour que tu t'interroges sur l'évolution des compteurs.
def manhathanMaboul(M,N): amismax=0 amis=0 for i in range (len(N)): for k in range (len(N)): if N[i]<=N[k]<=(N[i]+M): amis=amis+1 print(i,k,N[i],N[k],N[i]+M,"compteurs", amis, amismax) if amis>amismax: amismax=amis print("Résultat",M,N," = ",amismax) return amismax manhathanMaboul(5, [3,11,1,7,6,12])
On dirait que la réalisation ne respecte déjà pas l'énoncé, intervertissant M et N.
Franchement j'ai peu d'idée sur la solution ;-)
Après Yamine, pour que tout le monde soit d'accord sur l'énoncé, et sa solution, quelles réponses apporterais-tu à ces paramètres passés :