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 :

Aide Python [Débutant(e)] [Python 3.X]


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut Aide Python
    Bonsoir à tous ,

    Alors je rencontre quelques probléme avec Python et j'ai quelques difficultés car j'en ai fait trés peu .

    Quand je veux remplir un tableau y m'indique out of range et je comprends pas pourquoi car j'utilise le meme principe que dans d'autres langages:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Mat1 = []
     
    print('Saisir le nombre éléments dans votre tableau :')
    nbelement= int(input())
     
    for i in range(nbelement):
        print('Saisir un chiffre :')
        chiffre = int(input())
        Mat1[i] = chiffre
    Ensuite j'ai un programme que notre prof nous a passé il y'a quelque chose que je comprends pas

    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
    def saisie_mat():
        #definition des dimensions de la matrice
        nbli=int(input('entrez le nombre de lignes de la matrice:'))
        nbcol=int(input('entrez le nombre de colonnes de la matrice:'))    
        
        #initialisation du tableau
        #pour chaque ligne, on remplit toutes les colonne a zero
        Mat = []
        for i in range(nbli) :
            Mat.append([0]*(nbcol))
        
        #saisie de la matrice
        for i in range (0,nbli,1):
            for j in range (0,nbcol,1):
                    print ('Pour la matrice, entrez le terme situe a la ligne ',i+1,' et a la colonne ',j+1,' :')
                    aij=int(input())
                    Mat[i][j]=aij
        return Mat

    Pourquoi dans ce cas on met (0,nbli,1) , je me doute que sa correspond ou on commence l'index et on incrémente mais je comprends pas pourquoi juste un peu plus en vert on ne le fait pas .

    Si quelqu'un pourrait m'expliquer sa serait cool car j'ai peu plus de mal avec python sur certaines choses

    merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Lorsque tu déclares:
    tu déclares une liste vide, donc quand ensuite tu adresses le premier objet de cette liste:
    ça échoue parce que Mat[x] n'existe pas

    Il faut utiliser la méthode append dans ce cas là.

    Pourquoi dans ce cas on met (0,nbli,1) , je me doute que sa correspond ou on commence l'index et on incrémente mais je comprends pas pourquoi juste un peu plus en vert on ne le fait pas .
    Dans les arguments (0,nbli,1) le troisième désigne le pas d'incrémentation. Ici c'est 1, ce qui est le pas par défaut, donc inutile.

    Par contre je ne vois rien en "vert" dans tout cela.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut
    Merci Vins pour ton explication

    Citation Envoyé par VinsS Voir le message

    Par contre je ne vois rien en "vert" dans tout cela.
    S'était pour cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(nbli) :
            Mat.append([0]*(nbcol))
    je comprenais pas pourquoi s'était pas pareil que ce que tu viens m'expliquer .


    Entre temps , j'ai trouvé et je comprenais pas pourquoi sa buguait car quand je fais en C# je fais comme ca alors que la tableau est vide également , Exemple:
    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
     
    int [] l = new int[10];
                int i;
     
                for(i=0 ; i < l.Length ; i++)
                {
                    l[i] = 10;
                }
     
                foreach(int c in l)
                {
                    Console.WriteLine(c);
                }
     
                Console.Read();
    Tout fonctionne parfaitement et c'est l'équivalent de ce que j'avais écrit en python donc si je comprends bien le langage Python posséde quelques subtilités

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 35
    Par défaut
    Bonjour,
    pour ce qui est en vert, les trois lignes suivantes sont équivalentes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in range(100) :
    for i in range(0,100):
    for i in range(0,100,1) :
    En résumé, s'il y a un seul argument dans range, c'est la fin de l'intervalle et on sous entend qu'on débute à 0 et qu'on incrémente de 1 en 1.
    S'il y a deux arguments, c'est le début et la fin de l'intervalle et on sous-entend qu'on incrémente de 1 en 1.

    Bon courage,

    HT

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut
    Ok merci hello .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide python mini projet ISN
    Par Trirouson dans le forum Général Python
    Réponses: 22
    Dernier message: 19/12/2013, 20h01
  2. Aide Python [From turtle import*]
    Par tuture38 dans le forum Général Python
    Réponses: 3
    Dernier message: 16/02/2013, 15h40
  3. Demande d'aide pour extraire des données Excel à l'aide python
    Par userinfo dans le forum Général Python
    Réponses: 5
    Dernier message: 05/01/2013, 11h45
  4. Aide Python et Apache 2
    Par otobenzina dans le forum Linux
    Réponses: 1
    Dernier message: 12/05/2012, 10h04
  5. aide python et apache2
    Par otobenzina dans le forum Apache
    Réponses: 1
    Dernier message: 12/05/2012, 01h09

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