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 :

Comment afficher le contenu d'un pointeur?


Sujet :

Python

  1. #1
    Membre régulier Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Points : 71
    Points
    71
    Par défaut Comment afficher le contenu d'un pointeur?
    Bonjour,
    Je suis au niveau 0 + 0 = 0 en python. J'ai lu qu'en C on pouvais afficher l' adresse (je parle de l'adresse hexadecimal ou autre, non du contenu) d'un pointeur (= reference?) de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int age = 10
    printf("L'adresse de la variable age est : %p", &age);

    Comment puis-je faire la même chose en python? (sans le formatage avec printf si possible pour réduire au plus simple le test).

    Merci beaucoup

  2. #2
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 246
    Points : 342
    Points
    342
    Par défaut
    salut

    je crois qu'il n'y a pas de notion de pointeur sous python

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    La notion de pointeur telle que connue en C n'existe pas en Python _mais_ comme tout est objet, il peut être utile de se rappeler qu'on travaille plutôt avec des adresses et rarement des valeurs (sauf dans le cas des litéraux).

    Ceci dit, CPython permet de retourner indirectement l'adresse d'un objet via la fonction id.
    - W.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre régulier Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    La notion de pointeur telle que connue en C n'existe pas en Python
    - W.
    D'accord. Alors en LISP, quel serait le code correspondant? Je suis newby en python et lisp et je voudrais simplement expérimenter pour comprendre le cons, car, cdr.

    La question qui me taraude est la suivante :
    soit l'adresse d'un pointeur = 3
    la valeur de cette adresse 177450
    et la valeur de l'adresse 177450 = 10


    Est-ce que le car du pointeur c'est 10 et le cdr 4?

    ça serait génial si je pouvais enfin comprendre ce qu'est un cons, car pour le pointeur ça commence à venir

    merci d'avance pour votre aide

  5. #5
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Pas de pointeurs en Python, pas de pointeurs en Lisp. Si tu veux comprendres les pointeurs du C... ce n'est pas la bonne direction à prendre.

    Quant à cons, car, cdr, ce sont des fonctions Lisp ou Scheme, qui n'ont rien à voir avec Python ou C. Consulte un tuto Lisp, ou pose ta question dans le forum Lisp.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  6. #6
    Membre régulier Avatar de paragoge
    Profil pro
    Inscrit en
    Février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 115
    Points : 71
    Points
    71
    Par défaut
    Merci, ça me fait gagner du temps de ne pas inutilement chercher du côté de python, par contre en lisp il y a des pointeurs. C'est là même une notion fondamentale!

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Juste un petit complément:

    Si tu cherches à bidouiller avec la mémoire, effectivement Python n'est pas adapté.

    Mais si tu cherches à programmer la logique de Lisp pour mieux la comprendre: Python est adapté, parce qu'il est très doué pour manipuler des listes.

    Par exemple: codage de car et cdr:

    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
     
    def car(x):
        return x[0]
     
    def cdr(x):
        return x[1:]
     
    L = [1, 2, 3, 4, 5]
     
    print car(L)
    1
     
    print cdr(L)
    [2, 3, 4, 5]
     
    print car(cdr(L))
    2
    Etc...

    A priori, rien de s'oppose à implémenter un lisp en Python, (et je dois reconnaitre que ça m'a déjà tenté ). Il serait seulement un peu plus lent qu'en C.

    Tyrtamos
    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

Discussions similaires

  1. Comment afficher le contenu d'un fichier ini dans un mémo?
    Par Jayceblaster dans le forum Langage
    Réponses: 7
    Dernier message: 13/05/2014, 17h38
  2. Comment afficher le contenu d'une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/06/2007, 11h45
  3. Réponses: 4
    Dernier message: 19/10/2006, 16h24
  4. Comment afficher le contenu d'une cassette DAT?
    Par prefna dans le forum Périphériques
    Réponses: 1
    Dernier message: 24/07/2006, 13h46
  5. Réponses: 23
    Dernier message: 07/02/2006, 17h55

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