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

Calcul scientifique Python Discussion :

Compréhension d'un bout de code


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2020
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Compréhension d'un bout de code
    Bonjour à toutes et à tous,
    Je suis en train d'adapter cette série d'algorithmes dans un autre langage.
    Je sèche néanmoins sur la compréhension de cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    points = [InformationPoint(Point(0, 0), False, 0)
      for i in range(0, xx + yy)]
    Je ne comprends pas ce que vient faire la boucle dans le tableau points, et surtout ce qu'elle est censée renvoyer.
    Je précise avant tout que je ne connais absolument pas Python, je le découvre en même temps .
    J'ai essayé de reproduire le comportement sur Trinket, mais pour le moment ce n'est pas un succès .

    Merci si quelqu'un sait m'en dire plus .

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    bonjour,

    La construction d'une liste avec une boucle interne s'appelle une "compréhension de liste" => https://docs.python.org/fr/3/tutoria...comprehensions

    Pour comprendre comment ça marche, il suffit d'un petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print([i for i in range(0, 10)])
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    Dans le code donné, comme la variable i de la boucle for n'est pas utilisée, il s'agit d'un simple compteur. Mais je ne comprends pas l'intérêt de répéter "InformationPoint(Point(0, 0), False, 0)" qui devrait donner le même résultat à chaque fois? Il faudrait connaître le programme pour le savoir.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2020
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour tyrtamos,
    Merci pour votre réponse, j'y vois maintenant un peu plus clair.

    Citation Envoyé par tyrtamos Voir le message
    Dans le code donné, comme la variable i de la boucle for n'est pas utilisée, il s'agit d'un simple compteur. Mais je ne comprends pas l'intérêt de répéter "InformationPoint(Point(0, 0), False, 0)" qui devrait donner le même résultat à chaque fois? Il faudrait connaître le programme pour le savoir.
    J'avoue que moi aussi, j'ai du mal à comprendre l'intérêt de cette liste.
    Je pensais que ça créait un tableau vide, mais à priori cela ne semble pas être le cas :-/

    Edit :

    Si je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    points = [InformationPoint(Point(0, 0), False, 0)]
    print(points)
    Ca me renvoie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [<detection_nfa.InformationPoint object at 0x7fb523a7f588>]
    Edit 2 :

    J'avance, j'ai revu la syntaxe des deux lignes comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    points = [InformationPoint(Point(0, 0), False, 0) for i in range(0, 2)]
    Avec un print sur points, j'ai enfin un retour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [<detection_nfa.InformationPoint object at 0x7fb7af432508>, <detection_nfa.InformationPoint object at 0x7fb7af432948>]

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    points est une liste qui contient autant d'instance d'InformationPoint que défini par votre range.

    @Tyrtamos: Si si ça a de l'intéret de définir tout ces objet indépendamment. Car si tu fais par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    points = [InformationPoint(Point(0, 0), False, 0)]*2
    et bien lorsque tu modifieras le premier élément de la liste, tu modifiera aussi le deuxième !
    Et comme là il s'agit d'une initialisation, il y a fort à parier que plus tard dans le code, chaque point de la liste points doivent évoluer sans impacter les autres.

Discussions similaires

  1. [SFML 2.0] Aide à la compréhension d'un bout de code, pour tilemapping.
    Par Jeano81 dans le forum SFML
    Réponses: 3
    Dernier message: 20/10/2016, 17h24
  2. [XML][XSL] déplacer bout de code XML
    Par majanissa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 14/09/2005, 17h17
  3. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  4. bout de code à dechifrer svp
    Par bball dans le forum C
    Réponses: 32
    Dernier message: 20/01/2005, 23h23

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