cerhu > comp.lang.* > comp.lang.python

Ju32700 (06/03/2019, 23h29)
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
Benoit Izac (07/03/2019, 08h01)
Bonjour,

Le 06/03/2019 à 22:29, Ju a écrit dans le message
<_tadnd2-S9NWph3BnZ2dnUU798zNnZ2d> :

> 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
> True
> Sinon
> False


Tu as oublié de poster le code que tu as essayé de faire et qui ne
fonctionne pas.
Pierre Maurette (07/03/2019, 09h11)
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
> True
> Sinon
> 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)
ast (07/03/2019, 10h45)
Le 06/03/2019 à 22:29, Ju32700 a écrit :
> 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
> True
> Sinon
> False


def lignecomplete(M):
for line in M:
if all([i==1 for i in line]):
return True
return False
Discussions similaires
MATRICES

Matrices

matrices SDP

Matrices?


Fuseau horaire GMT +2. Il est actuellement 19h50. | Privacy Policy