Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Pierre Maurette Newsgroups: fr.comp.lang.python Subject: Re: Matrices Date: Thu, 07 Mar 2019 08:11:44 +0100 Organization: A noiseless patient Spider Lines: 55 Message-ID: References: <_tadnd2-S9NWph3BnZ2dnUU798zNnZ2d@giganews.com> Reply-To: maurette.pierre@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15"; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: reader02.eternal-september.org; posting-host="1ee051ba660e85202a9bb42f0decd6b6"; logging-data="26180"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/oG+/tv9KDa4Q2jvtN5AvHuK3rAeT8TlA=" Cancel-Lock: sha1:eJPgkScLIKW6Kw7GF4LITdgji44= X-Newsreader: MesNews/1.08.06.00-fr X-Face: cmi$3R1_J{[}5K|8d'LDiJ$SsZ*gn,j*PhJ#KVGt+45,E_N9O}GrhhQ>fb&q<&lz=g%PEv' u"m)N|KrBMux?2:E?N7Uw3L#H>L#GwM}gY:.`W.qu z`1'W'h-AXPmB]#7~<+@H.<0M`-jBkCWbmkcT_*LBVD3|p1a?h1H;cHq{$-vbeP@Hdcqp5z~lwU7ZK `~ Xref: csiph.com fr.comp.lang.python:3180 Ju32700 : > Bonjour, > j'aurais besoin d'aide pour mon programme en Python s'il vous plait : > > ##def lignecomplete(M): # M est une matrice carrée d'ordre n > ## # Si une des lignes est complète, le programme renvoie "Vrai" > ## # Sinon, il renvoie "Faux" > > Il faut que l'une des lignes soit uniquement rempli de 1 pour renvoyer "True" > > Si je fais >>> lignecomplete([[1,1,1],[1,1,1]]) > True > > Sinon >>> lignecomplete([[1,1,0],[1,0,1]]) > False J'imagine qu'il s'agit d'un exercice dans le cadre d'une formation. L'énoncé devrait être être plus précis, ou plus explicite. Tel quel, il semble qu'on doive renvoyer une chaîne, alors qu'un booléen est d'évidence plus logique (LOL). Faut-il lire "Une des lignes au moins" ou "Exactement une des lignes" ? L'énoncé parle de "matrice carrée d'ordre n", les matrices de vos exemples ne sont pas carrées. A moins que je râte quelque chose, l'exercice n'est pas si facile que ça. Vous pouvez décortiquer ce code pour rédiger votre proposition: #! /usr/bin/env python3 # -*- coding: utf-8 -*- def checkSquareMatrice(M, n): return [len(x) == n for x in M] == n * [True] def ligneCompleteStrict(M, n): return (len([x for x in M if x == n * [1]]) == 1) def ligneCompleteAuMoins(M, n): return (len([x for x in M if x == n * [1]]) > 0) for M in [ [[0,1,1],[1,1,0],[1,0]], [[0,1,1],[1,1,0],[1,0,1]], [[1,1,1],[1,1,0],[1,0,1]], [[1,1,1],[1,1,1],[1,0,1]] ]: lM = len(M) if (checkSquareMatrice(M, lM)): print ('Matrice: %s, taille: %s' % (M, lM)) print ('Un seul: %s' % ligneCompleteStrict(M, lM)) print ('Au moins un: %s\n' % ligneCompleteAuMoins(M, lM)) else: print ('Matrice: %s, NOT A "MATRICE"\n' % M) -- Pierre Maurette