IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Matrice , colonnes , lignes


Sujet :

Python

  1. #1
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut Matrice , colonnes , lignes
    Bonjour,

    Je me suis jamais sentie aussi bête de ma vie , et tout çà à cause d'une matrice .Soit Z = [] ; à partir de Z , créer une matrice M [[1,2,3],[4,5,6]] et il faut créer une expression pour n'importe quelle matrice de n lignes par m colonnes .

    Ma réponse est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> def matrice(x,y) :
    	Z = []
    	M = [1,2,3],[4,5,6]
    	for x in range(2) : Z += [M]
    	for y in range(3) : Z += [M]
    	return 3*x + y + 1
     
    >>> matrice(1, 3)              # c'est complétement faux , la matrice a comme une sous-liste .
    6
    >>> matrice(2, 5)
    6
    >>> matrice(1, 0)
    >>> M[0]
    [1, 2, 3] # le seul truc qui est juste

    Bon , j'ai lu quelques que quand on a 2 lignes et 3 colonnes chacune , l'expression mathématique est 3*x + y + 1 , logique puisque qu'on doit sauter de 3 lignes , plus 1 colonne , et le ' + 1 ' correspond à la position de la nouvelle liste (enfin c'est que je crois comprendre )

    Mais une chose me dit qu'en fait je ne comprends pas une matrice et son sens : liste de profondeur 2 et dimensions d'une matrice M sont respectivement len(M) et len(M[0]).

    Quoi çà veut dire qu'on itère ou que l'on cherche un élément par index ?
    Mais si on veut genre accéder à la ligne 3 et colonne 5 ?Cela correspondrait à quoi par écriture ? Est-ce que c'est possible ?
    Est-ce que je dois vraiment définir une fonction matrice ?

    Dsl mais cet exo me rends

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    une matrice peut être vue comme une liste de liste
    une liste est un ensemble de valeurs disons numériques dans le cas de calculs mathématiques.

    la liste de liste dont je parle est en fait une matrice à deux dimensions seulement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    liste = [1,2,3] # matrice à une dimension
    matrice = [liste, liste, liste] # matrice à deux dimensions
    # en vue éclatée ca donne : 
    matrice = [
     [1,2,3],
     [1,2,3],
     [1,2,3]
    ]
    il est possible d'accéder à tous les éléments d'une liste. Et comme la matrice que je présente est une liste de liste, on peut accéder à tous les éléments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    liste = [1, 2, 3]
    ---------------^
    # on accede a la position 1 de la liste
    liste[1] # la valeur est 2
     
    dans une matrice
    matrice = [
     [1,2,3],
     [4,5,6],
     [7,8,9] #*on veut la valeur 7 de cette liste
    ]
     
    #on peut accéder à la sous liste 2 de la matrice comme cela
    sousliste = matrice[2] # on obtient : [7,8,9]
     
    # on accede ensuite à la valeur souhaitée
    mavaleur = sousliste[0] # on a la valeur 7
     
    #en plus court ca donne : 
    matrice[2][0] # on a directement la valeur 7
    mais au fond, je pense que l'ennoncé de l'execice n'es pas présenté clairement. donc je ne peux rien faire de plus

  3. #3
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Merci beaucoup
    Donc en fait pour coder une fonction col2() afin d'extraire tous les éléments d'index 2 , et de la géneraliser pour n'importe quelle colonne d'une matrice de n lignes par m colonnes : c'est un peu comme tu as fait pour trouver les index .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    M = [[1,2,3],[4,5,6]]
    M[0][2] + M[1][2]
    Mais comment exprimer une matrice pour n lignes par m colonnes ?
    Déjà le 'par' , son sens , çà voudrait dire une multiplication ?
    Le x et y ont un lien étroit , j'ai jamais été bonne avec les équations

    Au fait , le prof a dit qu'on pouvait zapper le Z = [] , d'ailleurs je vois pas à quoi cela sert de mettre qu'une liste est vide (je sais çà contient rien)

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 938
    Points : 7 347
    Points
    7 347
    Par défaut
    Je ne sais pas si j'ai bien compris, mais ça ne serait pas quelquechose de ce genre que tu cherches?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> mat = ([12, 5, 9], [4, 6, 2])
    >>> for line in mat:
    ...     x, y, z = line
    ...     print("{0}x + {1}y = {2}".format(x, y, z))
    ... 
    12x + 5y = 9
    4x + 6y = 2

  5. #5
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Merci pour ta recherche mais il y'a une soucis
    Le seul indice du prof ,c'est la forme 3*x + y + 1 , je sais que ta méthode est simple et efficace , mais je pense que l'objectif est de trouver une liste .Cet exo a rendu dingue tout le monde .Le problème de cette matrice est qu'elle a une sous-liste.
    Mais j'ai trouvé comme piste , la méthode append () et print , d'ailleurs en fait , j'ai remarqué que le soucis réside :
    _ les index commencent à 0 .
    _ mais dans la matrice M = [[1, 2, 3], [4, 5, 6]] , on remarque qu'on saute tout le temps de 1 , mais les colonnes commencent aussi à zéro ?

    Voilà mes codes obtenus : attention à la longueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    >>> def matrice(n, m):
    	M = [[1, 2, 3], [4, 5, 6]]
    	for x in range(n) :
    		M.append([])
    		for y in range(1, m*n+1) :
    			M.append(y)
    			print M
     
     
    >>> matrice(2, 3)
    [[1, 2, 3], [4, 5, 6], [], 1]
    [[1, 2, 3], [4, 5, 6], [], 1, 2]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6, [], 1]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6, [], 1, 2]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6, [], 1, 2, 3]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6, [], 1, 2, 3, 4]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6, [], 1, 2, 3, 4, 5]
    [[1, 2, 3], [4, 5, 6], [], 1, 2, 3, 4, 5, 6, [], 1, 2, 3, 4, 5, 6]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    >>> def matrice(n, m):
    	M = [[1, 2, 3], [4, 5, 6]]
    	for n in range(1, 4) :
    		M.append([+1])
    		for m in range(1, m*n+1) :
    			M.append(+1)
    			print M
     
     
    >>> matrice(1, 2)
    [[1, 2, 3], [4, 5, 6], [1], 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    [[1, 2, 3], [4, 5, 6], [1], 1, 1, [1], 1, 1, 1, 1, [1], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    >>> def matrice(n, m):
    	M = [1, 2, 3], [4, 5, 6]
    	for n in range(1, 6) :
    		print 3*n + 1
    		for m in range(1, 6) :
    			print m + 1
     
     
    >>> matrice(1, 2)
    4
    2
    3
    4
    5
    6
    7
    2
    3
    4
    5
    6
    10
    2
    3
    4
    5
    6
    13
    2
    3
    4
    5
    6
    16
    2
    3
    4
    5
    6
    Et là , j'ai utilisé ton code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    >>> mat = ([1, 2, 3], [4, 5, 6])
    >>> for line in mat:
    	x, y, z = line
    	print("{0}x + {1}y = {2}".format(x, y, z))
     
     
    1x + 2y = 3
    4x + 5y = 6
    >>> def matrice(x, y) :
    	mat = [[1, 2, 3], [4, 5, 6]]
    	for line in mat:
    		x, y, z = line
    		print("{0}x + {1}y = {2}".format(x, y, z))
     
     
    >>> matrice(1, 2)
    1x + 2y = 3
    4x + 5y = 6
    >>> matrice(1, 3)
    1x + 2y = 3
    4x + 5y = 6
    >>> matrice(2, 3)
    1x + 2y = 3
    4x + 5y = 6


    Et là aussi je bloque ( PS : c'est toujours la réflexion sur cet exo )

    par exemple tu mets range(1,4) cela te retournera toujours (à chaque boucle) [1,2,3]

    par contre si tu mets:

    for x in range(1,4):

    print x+1

    dans la boucle x=1 donc print retourne 2

    puis x=2 donc print retourne 3

    puis x=3 donc print retourne 4

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 938
    Points : 7 347
    Points
    7 347
    Par défaut
    Tu écris ceci

    Citation Envoyé par Kurodiam
    il faut créer une expression pour n'importe quelle matrice de n lignes par m colonnes
    Pour 1 ligne et 3 colonnes, je t'ai donné mon exemple, il faut adapter à ton cas qui est 1 ligne et 4 colonnes.

    Ma proposition était donc de la forme x + y = z
    Ta recherche est x + y + z = n où on ne prend pas en compte le n, et sans signe =

    J'ai placé ma matrice sous la forme d'un tuple de listes, mais c'est dans ton cas équivalent à une liste de listes.

    Si j'adapte mon code à ce que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> mat = ([1, 2, 3], [4, 5, 6]) 
    >>> for line in mat:     
    ...    x, y, z = line     
    ...    print("{0}x + {1}y + {2}".format(x, y, z))
    Maintenant tu auras le problème des signes à gérer...

  7. #7
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Un grand merci pour ton explication .Bonne année 2014 .

    Mais juste un truc :
    x + y + z = n , le z désigne quoi ?
    x et y ,c'est quoi aussi ? si n ,c'est le nombre de lignes ...


    J'avoue que ce symbole {} m'intrigue , je l'ai jamais vu , je suis un bébé en python

    Comme tu dis , toi , tu utilise la méthode tuple , d'ailleurs ,c'est bizarre mais mon python 2.7.6 , m'a donné une fois la réponse 'utilise tuple ' mais j'ai pas eu l'idée d'enregistrer le code obtenu .

    Pour ta variable 'mat' ne prends pas deux crochets comme M = [[1, 2, 3], [4, 5, 6]]

    Mais c'est vrai , que pour le signe , là c'est une autre histoire
    Une liste peut prendre des chiffres négatifs logiquement , mais comme dans le cours , on est encore aux chiffres positifs .....

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 938
    Points : 7 347
    Points
    7 347
    Par défaut
    x + y + z = n , le z désigne quoi ?
    3*x + y + 1 dans ton exemple, tu ne vois toujours pas ?

    en fait c'est comme cela que j'ai compris, toi tu ne veux pas qu'on créé une chaîne de forme x + y + z = n, mais de la forme x + y + z, où je me trompe ?

    le z dans ton cas de figure est un entier ne comprenant pas de variable en facteur...

    x et y ,c'est quoi aussi ? si n ,c'est le nombre de lignes
    Houla, on est loin là, le n dans l'exemple ci-dessus était simplement la valeur (un entier) résultant de ton équation.

    exemple : 3x + y + 1 = 5 (n serait égale à 5)

    J'avoue que ce symbole {} m'intrigue , je l'ai jamais vu , je suis un bébé en python
    Les {} représentent l'endroit où on remplace cette valeur

    {0} -> première valeur à remplacer
    {1} -> deuxième valeur ...
    {2} -> etc...

    Voici une utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("la valeur de x: {0}".format(5))
    ça affichera -> la valeur de x: 5

    Pour ta variable 'mat' ne prends pas deux crochets comme M = [[1, 2, 3], [4, 5, 6]]
    Oui je met un tuple car je considère qu'une matrice est un ensemble de lignes comprenant des colonnes.

    Le nombre de lignes n'étant pas modifiables, j'utilise un tuple.

    Si tu ne comptes pas modifier la valeur dans tes colonnes, tu pourrais même écrire de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     M = ((1, 2, 3), (4, 5, 6))
    Pour de la lecture seule, pas d'écriture, et pour beaucoup de matrices, ça peut rendre un code plus efficaces dans le sens vitesse d'exécution.

    Mais c'est vrai , que pour le signe , là c'est une autre histoire
    Oui faudra voir ça avec des structures conditionnelles (if, else)

  9. #9
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Merci pour l'explication détaillée

    Je vais poser la question au prof si c'est de la forme x + y + z mais je pense qu'il demande qu'on prenne la méthode append() et print (du moins ,j'ai vu que la majorité des réponses convergeait vers cela ) .

    _Par contre pour le signe : on pourrait faire si on veut des chiffre juste positifs

    if (x or y or z) > 0 : return True
    ...else : return False


    Maintenant , que tu le dis , c'est vrai que le nombre de lignes n'est pas modifiables mais on pourrait dire la même chose des colonnes ?(d'ailleurs ,y'en a 3 par index )

    C'est vraiment du costo cet exo

  10. #10
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 938
    Points : 7 347
    Points
    7 347
    Par défaut
    Pour le signe on peut faire des choses comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def display(mat):
        VAR = ('x', 'y', 'z')
        res = ''
        for ind, val in enumerate(mat):
            val_str = str(val)
            if ind != 0 and val>0:
                res += '+{0}{1}'.format(val_str, VAR[ind])
            else:
                res += val_str + VAR[ind]
        print(res)
     
    display((-12, -5, 9))

  11. #11
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    ok!sinon , j'ai vu un truc dans le cours , qui pourrait peut être utilisé :
    c'est genre : 1 2 3 4 5 6

    2 ...............

    3 ...............

    Et çà continue jusqu'à 6 (verticalement aussi je pense)

    Dans wiképedia , j'ai trouvé que :

    La disposition générale des coefficients d'une matrice A de taille (m,n) est donc la suivante:

    Les coefficients a,i,j avec i = j avec sont dits diagonaux, ceux a différent de j avec sont dits extradiagonaux.


    _On a comme info dans l'exo que l'on doit coder une fonction binaire avec 2 variables locales ou paramètres , mes codes obtenus sont certes faux , mais la fonction 'len' et 'range' peuvent servir , je pense dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> def matrice(n, m) :
    	M = [[1, 2, 3],[4, 5, 6]]
    	for n in range(len(M),len(M[0])) :
    		M[n][m] = [n*m]
    >>> matrice(0, 2)
     
    Traceback (most recent call last):
      File "<pyshell#47>", line 1, in <module>
        matrice(0, 2)
      File "<pyshell#45>", line 4, in matrice
        M[n][m] = [n*m]
    IndexError: list index out of range
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> def matrice(n, m) :
    	M = [1, 2, 3],[4, 5, 6]
    	for n in range(len(M),len(M[n*m])) :
    		M[n][m] += [n*m]
     
     
    >>> matrice(0, 2)
     
    Traceback (most recent call last):
      File "<pyshell#64>", line 1, in <module>
        matrice(0, 2)
      File "<pyshell#63>", line 4, in matrice
        M[n][m] += [n*m]
    IndexError: tuple index out of range
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> def matrice(n, m) :
    	M = [n*m]
    	for n in range(len(M),len(M[n][m])) :
    		M = [1, 2, 3],[4, 5, 6]
     
     
    >>> matrice(0, 1)
     
    Traceback (most recent call last):
      File "<pyshell#129>", line 1, in <module>
        matrice(0, 1)
      File "<pyshell#128>", line 3, in matrice
        for n in range(len(M),len(M[n][m])) :
    TypeError: 'int' object has no attribute '__getitem__'


    C'est cet exo qui m'a mené vers l'idée de l'utilisation de 'len' , sachant qu'une liste de profondeur 2 et les dimensions d'une matrice M sont len(M) et len(M[0]) .Pour tirer les élèments à partir de l'index , c'est facile ex : M[0][2] = 3 , et M = M = [[1, 2, 3],[4, 5, 6]].
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> G = ['ciel', 'mille sabords', 'tonnerre de Brest', 'zut', 'enfer']
    >>> for i in range(len(G)) :  # mais là c'est pour avoir l’élément en double .
    	G[i] *= 2
     
     
    >>> G
    ['cielciel', 'mille sabordsmille sabords', 'tonnerre de Bresttonnerre de Brest', 'zutzut', 'enferenfer']

  12. #12
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Kurodiam Voir le message
    ok!sinon , j'ai vu un truc dans le cours , qui pourrait peut être utilisé :
    c'est genre : 1 2 3 4 5 6

    2 ...............

    3 ...............

    Et çà continue jusqu'à 6 (verticalement aussi je pense)

    Dans wiképedia , j'ai trouvé que :

    La disposition générale des coefficients d'une matrice A de taille (m,n) est donc la suivante:

    Les coefficients a,i,j avec i = j avec sont dits diagonaux, ceux a différent de j avec sont dits extradiagonaux.
    J'ai vraiment beaucoup, beaucoup de mal à suivre.
    Vous donnez la forme générale d'une matrice… Heu, oui… C'est une autre manière d'écrire ce que vous avez déjà indiqué dans votre premier message (ligne 2).

    Que vient faire ici (quel intérêt) la diagonale?

    Vous parlez ensuite de "fonction binaire"? De quoi parlez-vous?

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> def matrice(n, m) :
    	M = [[1, 2, 3],[4, 5, 6]]
    	for n in range(len(M),len(M[0])) :
    		M[n][m] = [n*m]
    >>> matrice(0, 2)
     
    Traceback (most recent call last):
      File "<pyshell#47>", line 1, in <module>
        matrice(0, 2)
      File "<pyshell#45>", line 4, in matrice
        M[n][m] = [n*m]
    IndexError: list index out of range
    Ici, la première erreur est un problème de variable: n est transmis en tant que paramètre à la fonction, et est réinitialisé avant d'avoir servi.
    La seconde erreur est un problème de compréhension du problème et de l'utilisation de la fonction range. Cf votre discussion précédente (concernant les listes et les indexations).

    À aucun moment dans cette discussion, le problème n'est posé correctement (ie: entièrement). Et vous semblez découvrir les matrices dans le message 11!!!
    Et dans vos messages, je ne comprends pas ce que vous tentez de faire…

    Pour résoudre votre problème (et essayer d'y comprendre quelque chose), vous devriez commencer par insérer des fonctions "print" pratiquement à chaque ligne de votre fonction au lieu d'essayer un autre "truc" en mélangeant les lignes ou en enlevant/rajoutant deux ou trois "trucs"… Enfin, bien sûr, après avoir essayé de comprendre le problème posé!!

    Clodion

  13. #13
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Oui , je me suis trop compliquée la vie avec la matrice.A mon stade , il faut comme m'a dit le prof "savoir manipuler les matrices, les construire, récupérer un élément, une sous-liste ".En fait , l'exercice est le premier pas vers une programmation matricielle.

    Déjà je dois savoir faire l'algorithme d'une matrice M , avec n lignes et m colonnes (on m'a dit que je dois commencer avec une matrice M qui est vide ) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     M = []          
     for n in range(1, 10) : 
     
    	n = []                                  # liste vide .
    	for m in range(1, 10) :
    		m = n + 1                       # c'est faux .
     
     
     
    Traceback (most recent call last):
      File "<pyshell#42>", line 4, in <module>
        m = n + 1
    TypeError: can only concatenate list (not "int") to list
     
     
    #Le fait d'ajouter un nombre , çà pourrait être n’importe quelles nombres  , mais le symbole m , c'est pour la colonne.

    Dans l'exercice 1 , on doit créer une fonction matrice , qui est binaire(donc 2 arguments) avec deux variables locales ou paramètres n et m , mais bon c'est logique , puisque la dimension d'une matrice ,c'est (n,m).

  14. #14
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 938
    Points : 7 347
    Points
    7 347
    Par défaut
    Pour écrire une matrice vide, en effet tu dois utiliser range.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> def create_matrix(m, n):
    ...     return [[None for _ in range(n)] for _ in range(m)]
    ... 
    >>> create_matrix(3, 3)
    [[None, None, None], [None, None, None], [None, None, None]]
    m et n étant respectivement le nombre de lignes et le nombre de colonnes de la matrice.

    Le caractère _ est utilisé dans le sens où cette variable n'est pas utilisé dans la boucle, on aurait pu mettre une variable i à la place.

    None pour indiquer qu'aucune valeur n'est présente.

  15. #15
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Kurodiam Voir le message
    Déjà je dois savoir faire l'algorithme d'une matrice M , avec n lignes et m colonnes (on m'a dit que je dois commencer avec une matrice M qui est vide ) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     M = []          
     for n in range(1, 10) : 
     
    	n = []                                  # liste vide .
    	for m in range(1, 10) :
    		m = n + 1                       # c'est faux .
     
     
     
    Traceback (most recent call last):
      File "<pyshell#42>", line 4, in <module>
        m = n + 1
    TypeError: can only concatenate list (not "int") to list
     
     
    #Le fait d'ajouter un nombre , çà pourrait être n’importe quelles nombres  , mais le symbole m , c'est pour la colonne.
    Dans l'exercice 1 , on doit créer une fonction matrice , qui est binaire(donc 2 arguments) avec deux variables locales ou paramètres n et m , mais bon c'est logique , puisque la dimension d'une matrice ,c'est (n,m).
    Je reviens au même…
    Il ne sert à rien d 'essayer d'aller plus loin sans prendre le temps de regarder ce que vous faites et de corriger les erreurs de compréhension.

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     for n in range(1, 10) : 
     
    	n = []                                  # liste vide .
    Ceci n'a aucun sens, ni en Python, ni même en logique. Vous avez déjà fait ce type d'erreur.
    utopman et fred1599 ont déjà passé du temps à vous répondre et à donner des solutions. Il faut essayer de comprendre ce qu'ils ont fait (et pourquoi).

    Questions:
    Qu'est-ce que n pour vous (ici, dans ce bout de code)? Que représente-t-il?
    Qu'est-ce que "range"? À quoi sert-il? Que renvoie-t-il?
    Que fait donc cette structure?

    Commencez par mettre des "print" dans cette structure toute seule pour en voir le résultat et comprendre ce que cela "demande" à Python de faire… Ensuite vous pourrez essayer d'aller plus loin.

    Clodion

  16. #16
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Pour répondre à tes questions :

    _le n représente les lignes .
    _la fonction 'range' crée une liste et permet d'itérer une variable comme n ici , ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> range(1, 6)        # mais là , c'est basique .
    [1, 2, 3, 4, 5]
    _une matrice est un ensemble de liste , dépendant de sa dimension aussi .

    _Cette structure doit tout simplement représenter une matrice et ses dimensions (n,m) , et on peut retrouver après des éléments des listes ...

    _Justement , vos réponses m'ont permit de voir les erreurs dans mon raisonnement , et chaque méthode peut être relié ,mais l'important , c'est d'adopter un raisonnement logique et comprendre le fonctionnement de python .

    _ Sinon , pour ton conseil avec print , pourquoi pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> print "print n = []"
    print n = []
    >>> print "for n in range(1, 10) :"
    for n in range(1, 10) :
    >>> print "def create_matrix(m, n):"
    def create_matrix(m, n):
    >>> print "return [[None for _ in range(n)] for _ in range(m)]"
    return [[None for _ in range(n)] for _ in range(m)]
    >>> print "range(1, 10)"
    range(1, 10)

  17. #17
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Kurodiam Voir le message
    _le n représente les lignes .
    Ce n'est pas suffisant comme réponse!

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     for n in range(1, 10) : 
     
    	n = []                                  # liste vide .
    En ligne 1: n représente (je suppose) le numéro de la ligne de la matrice.
    En ligne 3: n représente la ligne elle-même (que vous instanciez à une liste vie).
    n? Numéro de la ligne ou ligne elle-même? Il faut choisir!!

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> print "print n = []"
    print n = []
    >>> print "for n in range(1, 10) :"
    for n in range(1, 10) :
    >>> print "def create_matrix(m, n):"
    def create_matrix(m, n):
    >>> print "return [[None for _ in range(n)] for _ in range(m)]"
    return [[None for _ in range(n)] for _ in range(m)]
    >>> print "range(1, 10)"
    range(1, 10)
    Les lignes 1, 3, 5, 7 et 9 sont triviales! Elles n'ont aucun intérêt dans ce contexte!!
    Elles sont triviales car vous y mettez des guillemets: elles n'apportent aucun renseignement sur la structure que vous employez.
    Par contre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    >>> for n in range(1, 10):
    	print(n)
    	n = []
    	print(n)
     
     
    1
    []
    2
    []
    3
    []
    4
    []
    5
    []
    6
    []
    7
    []
    8
    []
    9
    []
    >>>
    permet de voir le comportement de n dans cette structure.
    Et ainsi, cela permet de remonter à votre précédent script afin d'essayer de comprendre ce qui se passe et par conséquent de déterminer pourquoi cela ne fait pas ce que vous désirez et pourquoi cela génère une erreur en Python.

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	for m in range(1, 10) :
    		m = n + 1                       # c'est faux .
    Ici, il n'y a rien de "faux": ainsi que vous le disiez auparavant, ici m prend successivement les valeurs de 1 à 9.
    En ligne 3 vous ajoutez à cette valeur, le contenu de n.

    À votre avis, que contient, ici, n?
    PS: pour en être conscient: mettez des "print" dans cette structure (afin de connaître les valeurs de m et n avant l'addition)!!.

    Ceci devrait vous permettre de comprendre ce que réalise ce script et par conséquent de comprendre l'erreur qui est rapportée par Python.

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     M = []          
     for n in range(1, 10) : 
     
    	n = []                                  # liste vide .
    	for m in range(1, 10) :
    		m = n + 1                       # c'est faux .
     
     
     
    Traceback (most recent call last):
      File "<pyshell#42>", line 4, in <module>
        m = n + 1
    TypeError: can only concatenate list (not "int") to list
    Vous aurez ainsi compris ce que demandait votre code à Python et l'erreur qui y est associée.
    Avec cela, il est possible d'essayer de modifier ce script de manière à ce qu'il effectue véritablement ce que vous vouliez!!

    Clodion

  18. #18
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Ok!

    _ j'ai choisit , le n représente le numéro de la ligne , mais je pense que le n ne devrait pas être une liste vide , çà n'a pas de sens , méme pour le m qui serait une addition d'une liste vide et d'un nombre 1 , c'est incohérent .
    Quand c'est vide , il y'aura toujours rien forcément

    D'ailleurs même ce code obtenu ne veut rien dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    >>> for n in range(1, 10):
    	print(n)
    	n = []
    	print(n)
    	for m in range(1, 10):
    		print(m)
    		m = n + 1
    		print(m)
     
     
    1
    []
    1
     
    Traceback (most recent call last):
      File "<pyshell#39>", line 7, in <module>
        m = n + 1
    TypeError: can only concatenate list (not "int") to list


    _Donc je vois pas pourquoi on dirait n = quelques choses , puisque n est le numéro de la ligne .Ce code parait plus normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    >>> for n in range(1, 10):
    	n
     
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> for n in range(1, 10):
    	print(n)
     
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    >>> for n in range(1, 10):
    	print(n)
    	for m in range(1, 10):
    		m = n + 1
    		print(m)
     
     
    1
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    3
    3
    3
    3
    3
    3
    3
    3
    3
    3
    4
    4
    4
    4
    4
    4
    4
    4
    4
    4
    5
    5
    5
    5
    5
    5
    5
    5
    5
    5
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6
    7
    7
    7
    7
    7
    7
    7
    7
    7
    7
    8
    8
    8
    8
    8
    8
    8
    8
    8
    8
    9
    9
    9
    9
    9
    9
    9
    9
    9
    9
    10
    10
    10
    10
    10
    10
    10
    10
    10
    Pourquoi il y'a à ce point des répétitions ? Ce n'est pas normal
    C'est vrai , que dans le cours , on ne parle pas trop de la fonction print .
    L'erreur du premier code dit qu'on ne peut concaténer un int à une liste , mais une liste avec une liste (bon là j'ai saisi ).

  19. #19
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonsoir,

    Citation Envoyé par Kurodiam Voir le message
    _ j'ai choisit , le n représente le numéro de la ligne , mais je pense que le n ne devrait pas être une liste vide , çà n'a pas de sens , méme pour le m qui serait une addition d'une liste vide et d'un nombre 1 , c'est incohérent .
    Oui! Si n est le numéro de la ligne, il n'y a aucune raison d'écrire l'instruction "n = []". Ainsi que vous le dites, c'est incohérent.
    Et l'erreur qui apparaît lors de l'exécution provient bien de cela (lorsque vous faisiez "m = n + 1". Vous ajoutiez un chiffre (1) à une liste vide ([]). Python ne sait pas faire une telle addition, d'où l'erreur rapportée.

    Citation Envoyé par Kurodiam Voir le message
    Ce code parait plus normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> for n in range(1, 10):
    	print(n)
     
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Oui, tout à fait d'accord.

    Citation Envoyé par Kurodiam Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    >>> for n in range(1, 10):
    	print(n)
    	for m in range(1, 10):
    		m = n + 1
    		print(m)
     
     
    1
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    3
    3
    3
    3
    3
    3
    3
    3
    3
    3
    4
    4
    4
    4
    4
    4
    4
    4
    4
    4
    5
    5
    5
    5
    5
    5
    5
    5
    5
    5
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6
    7
    7
    7
    7
    7
    7
    7
    7
    7
    7
    8
    8
    8
    8
    8
    8
    8
    8
    8
    8
    9
    9
    9
    9
    9
    9
    9
    9
    9
    9
    10
    10
    10
    10
    10
    10
    10
    10
    10
    Pourquoi il y'a à ce point des répétitions ? Ce n'est pas normal
    C'est vrai , que dans le cours , on ne parle pas trop de la fonction print .
    L'erreur du premier code dit qu'on ne peut concaténer un int à une liste , mais une liste avec une liste (bon là j'ai saisi ).
    Ici, le code fait exactement ce que vous lui avez demandé!!
    Pour bien comprendre ce code il suffit de le suivre pas à pas en écrivant la valeur de chacune des variables… Et vous vous rendrez compte que le résultat affiché est parfaitement "normal" pour le code entré!!

    Allez, un coup de main pour commencer:
    Ligne 2: n = 1
    L3 : n = 1
    L4 : n = 1, m = 1
    L5 : n = 1, m = 2 (car m = n + 1)
    L6 : n = 1, m = 2 (affiche 2)
    L4 : n = 1, m = 2 (m prend la valeur suivante du "range")
    L5 : n = 1, m = 2 (car m = n + 1)
    L6 : n = 1, m = 2 (affiche 2)
    L4 : …

    À vous de faire la suite pour bien comprendre ce que le script exécute.

    Voilà, vous avez les moyens de "suivre" le déroulement du script et ainsi expliquer l'affichage!!

    Clodion

  20. #20
    Membre actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par Clodion Voir le message



    Ici, le code fait exactement ce que vous lui avez demandé!!
    Pour bien comprendre ce code il suffit de le suivre pas à pas en écrivant la valeur de chacune des variables… Et vous vous rendrez compte que le résultat affiché est parfaitement "normal" pour le code entré!!

    Allez, un coup de main pour commencer:
    Ligne 2: n = 1
    L3 : n = 1
    L4 : n = 1, m = 1
    L5 : n = 1, m = 2 (car m = n + 1)
    L6 : n = 1, m = 2 (affiche 2)
    L4 : n = 1, m = 2 (m prend la valeur suivante du "range")
    L5 : n = 1, m = 2 (car m = n + 1)
    L6 : n = 1, m = 2 (affiche 2)
    L4 : …

    À vous de faire la suite pour bien comprendre ce que le script exécute.

    Voilà, vous avez les moyens de "suivre" le déroulement du script et ainsi expliquer l'affichage!!

    Clodion

    Désolé , est-ce que je dois encore utiliser print et range ? le prof m'a dit que l'expression m = n + 1 ne valait pas grand chose .
    Quand vous parlez d'écrire Ligne 2 : n = 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> for n in range(1, 10):
    	n = 1
    	print(n)
     
     
    1
    1
    1
    1
    1
    1
    1
    1
    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    >>> def matrice(n, m) :
    	for n in range(1, 7) :
    		n = 1 ; n = 2 ; n = 3 ; n = 4 ; n = 5 ; n = 6
    		print(n)
    		for m in range(1, 7) :
    			m = n + 1
    			print(m)
     
     
    >>> matrice(1, 2)
    6
    7
    7
    7
    7
    7
    7
    6
    7
    7
    7
    7
    7
    7
    6
    7
    7
    7
    7
    7
    7
    6
    7
    7
    7
    7
    7
    7
    6
    7
    7
    7
    7
    7
    7
    6
    7
    7
    7
    7
    7
    7

    Est-ce que la fonction matrice doit comporter print et range ?
    D'habitude , je réfléchis pas autant pour faire un code .



    _Au fait , pourquoi le 1 apparait juste une fois dans ce code?(le code précedent) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    >>> for n in range(1, 10):
    	print(n)
    	for m in range(1, 10):
    		m = n + 1
    		print(m)
     
     
    1
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    3
    3
    3
    3
    3
    3
    3
    3
    3
    3
    4
    4
    4
    4
    4
    4
    4
    4
    4
    4
    5
    5
    5
    5
    5
    5
    5
    5
    5
    5
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6
    7
    7
    7
    7
    7
    7
    7
    7
    7
    7
    8
    8
    8
    8
    8
    8
    8
    8
    8
    8
    9
    9
    9
    9
    9
    9
    9
    9
    9
    9
    10
    10
    10
    10
    10
    10
    10
    10
    10

    Le vecteur en math est verticale , est-ce que c'est comme cela qu'une matrice doit apparaitre ? (j'ai lu quelques qu'une matrice est un ensemble de vecteurs , je pense )

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Transformer une matrice colonne en matrice ligne
    Par Leanaa dans le forum Bibliothèques tierces
    Réponses: 19
    Dernier message: 05/07/2012, 18h11
  2. connecter deux colonnes lignes par ligne
    Par ApolloCrid dans le forum Excel
    Réponses: 3
    Dernier message: 01/10/2007, 21h27
  3. [TListView] Detection Click droit colonne / Ligne
    Par BATiViR dans le forum Delphi
    Réponses: 5
    Dernier message: 13/06/2007, 09h49
  4. Réponses: 4
    Dernier message: 06/05/2007, 13h57
  5. Réponses: 6
    Dernier message: 07/02/2007, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo