Forum Programmation.python Les listes

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
8
mai
2019

Bonjour à tous!!
Voila, je suis debutant en python, j'ai fais mes armes en Basic,Cobol et autres MAIS il y a 20 ans!! Bref..Voici un petit code , une espece d'ebauche de Sudoku, mais en réalité c'est plus pour se faire avec les listes.. :

colonne=1
ligne=1
liste=[]
Num_Ligne=0

from random import *

# Boucle ligne
while ligne<=9:

    Num_Ligne=sample(range(1,10),9)
# Creation de la Table Num_Ligne    
    print (Num_Ligne,end=" ") 
    print (sep=" ")
    liste.append(Num_Ligne)
    ligne=ligne+1

print()
num=input("Entrez un numero de ligne : ")
print()
print ("La ligne est : ",liste[int(num)])
print ()
el=input("Entrez un index d'element dans la ligne : ")
print  (Num_Ligne[int(el)])

Alors voila ma question : quand je demande la ligne (num), j'ai effectivement celle que j'ai demandé. En revanche, et c'est la que je n'y arrive pas, c'est pour l'element!! Si je rentre par exemple, el = 2, j'ai bien le troisieme element MAIS de la derniere ligne affichée!! Et non, celle demandée juste avant..En gros, je voudrais l'element (el) de la ligne (num)…
J'imagine que c'est tout con, mais pour le coup je suis perdu..

Merci de votre aide!!!

  • # presentation du code

    Posté par  . Évalué à 3. Dernière modification le 08 mai 2019 à 09:30.

    pour coller des exemples de codes, c'est les ` qu'il faut mettre et pas les "
    et il en faut 3 comme tu l'as fais

    ```python
    ton code
    ```

  • # tableau à deux entrées

    Posté par  . Évalué à 6.

    NB : je n'ai pas testé ton code,

    au final tu dois avoir un tableau à 2 entrées, avec un numero de ligne, et un numero de colonne
    ex : 9 cases = 3 lignes de 3 colonnes chacune

    essaie deja d'afficher le tableau entier,

    car j'ai l'impression que tu ne reviens pas à la ligne à la fin du nombre de colonne
    tu aurais donc une seule ligne avec 9 valeurs dedans et si le print fait un retour à la ligne pour toi, tu as alors 18 lignes avec une seule valeur dedans

    si tu as bien un tableau
    A B C
    D E F
    G H I

    et tu demandes le numero de ligne que stockes dans num
    mais tu ne t'en sers que pour afficher la ligne liste[int(num)]
    D E F pour la 2e lignes

    il faudrait aussi t'en servir pour prendre l'element dans la ligne, par exemple :
    liste[int(num][int(el)]

  • # Num_ligne != liste

    Posté par  (site web personnel) . Évalué à 4.

    Je n'ai pas testé ton code, mais je crois que tu devrais remplacer:

    print  (Num_Ligne[int(el)])
    

    par:

    print (liste[int(num)][int(el)])
    

    car Num_Ligne est un tableau à 1 dimension, il contient toujours la dernière ligne: ce que tu as mis dedans en dernier. C'est le tableau liste qui contient toutes les lignes dans un tableau de tableaux (deux dimensions).

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: Num_ligne != liste

      Posté par  (site web personnel) . Évalué à 6. Dernière modification le 08 mai 2019 à 13:21.

      Un outil en ligne sympa pour apprendre en voyant les données telles qu'elles sont stockées par Python: PythonTutor. Ça peut se faire tourner en local, mais le plus simple est d'utiliser l'outil en ligne, copier/coller ton code puis le faire exécuter en pas à pas pour voir ce qui est manipulé.

      Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.