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 :

minINT et maxINT en python ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Par défaut minINT et maxINT en python ?
    Est-ce qu'il existe des constantes predefinies en python pour exprimer le plus petit INT et le plus grand INT ? (ou avec FLOAT)

    c'est plus simple d'avoir des constantes pour initialise le calcul d'un min ou d'un max.

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,

    reponse partielle, pour le plus grand int:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> import sys
    >>> sys.maxint
    2147483647
    dependant du système.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Je suppose qu'en Python tous les entiers sont signés ? Donc si maxint vaut 2147483647, il y a de bonnes chances pour que 'minint' (vous me comprenez) descende à -2147483648.

    => c'est vérifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>>type(-2147483648)
    <type 'int'>
    >>>type(-2147483649)
    <type 'long'>
    CQFD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import sys
    maxInt = sys.maxint
    minInt = -(maxInt +1)
    Voilà !

  4. #4
    Membre confirmé Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Par défaut
    ok, merci, mais du coup, je suis oblige de les definir moi-meme.

    est-ce que c'est portable ?

    je veux dire le module 'sys' depend de la machine non ?

    je suis surpris que de telles constantes n'existent pas dans python.

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    A mon avis, le maxInt depend de l'architecture de ta machine, il est donc variable.
    Pourquoi cela te pose-t-il problème?

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par KINENVEU
    je suis surpris que de telles constantes n'existent pas dans python.
    Ben si, on vient de te le montrer

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Evidemment que c'est portable : on définit 'minInt' à partir du 'maxint' donné par le système. C'est donc valable pour n'importe quel système. Quant à ma formule, elle est tout à fait valable, c'est une histoire de codage des entiers.

    Mais je ne comprends vraiment pas pourquoi tu as besoin de connaître ces valeurs... Python sait se débrouiller tout seul : si tu utilises un entier, et que tu dépasses ses limites, il sera automatiquement converti en entier long, ce qui offre des limites bien plus grandes. Et si tu atteins à nouveau ces limites, ta variable sera à nouveau adaptée (de 'long' passera à 'double'). Et là, je ne pense pas que tu puisses raisonnablement envisager d'atteindre ces limites...

    Bref, aucun risque de débordement.

    Edit : après quelques tests, il ne semble pas y avoir de type 'double' : le type 'long' domine. Ca va vraiment très très loin... Je ne sais pas comment Python gère les entiers longs, mais ils ne semblent pas avoir de limites. Je suis monté jusqu'à 2 puissance 4096, et c'est toujours du type 'long'... Intéressant, hmm ?

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

Discussions similaires

  1. Constantes MAXINT, MININT
    Par Zazawitch dans le forum C
    Réponses: 3
    Dernier message: 19/01/2006, 20h10
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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