Valorile maxime și Minime pentru int

Eu sunt în căutarea pentru valorile minime și maxime pentru numere întregi în python. De ex., în Java, avem un număr Întreg.MIN_VALUE " și " număr Întreg.MAX_VALUE`. Există așa ceva în python?

Comentarii la întrebare (5)
Soluția

Python 3

În Python 3, această întrebare nu't se aplică. Câmpia int tip este nemărginit.

Cu toate acestea, s-ar putea fi de fapt în căutarea pentru masina's cuvintesize. Ca's încă disponibile în Python 3 ca sys.maxsize.

Python 2

În Python 2, valoarea maximă pentru simplu int valori este disponibil ca sys.maxint:

>>> sys.maxint
9223372036854775807

Puteți calcula valoarea minimă cu -sys.maxint - 1 ca apare aici.

Python fără întreruperi de la simplu la numere întregi lungi odată ce depășește această valoare. Deci, de cele mai multe ori, ai castigat't nevoie să-l cunosc.

Comentarii (13)

sys.maxint constanta a fost eliminat de la Python 3.0 înainte, în loc de utilizare sys.maxsize

numere Întregi

  • PEP 237: în Esență, timp redenumit la int. Asta este, nu este doar un built-in de tip integral, numit int; dar se comporta mai ales ca vechi tip lung.
  • PEP 238: O expresie cum ar fi 1/2 returneaza un float. Utilizare 1//2 pentru a obține trunchierea comportament. (Acesta din urmă sintaxă a existat de ani de zile, la puțin din Python 2.2.)
  • sys.maxint constantă a fost eliminat, deoarece nu mai există nici o limită la valoarea de numere întregi. Cu toate acestea, sys.maxsize poate fi folosit ca un număr întreg mai mare decât orice lista practică sau string index. Este în conformitate cu punerea în aplicare este "natural" număr întreg de dimensiune și este de obicei același ca sys.maxint în edițiile anterioare pe aceeași platformă (presupunând că aceleași opțiuni de a construi).
  • La repr() de un întreg lung nu se includ la final L, deci codul necondiționat benzi care personaj va taie ultima cifră în loc. (Utilizați str() în loc.)
  • Octal literali nu mai sunt de forma 0720; utilizarea 0o720 în loc.

Consultați : https://docs.python.org/3/whatsnew/3.0.html

Comentarii (0)

Dacă aveți nevoie doar de un număr care's mai mari decât toți ceilalți, puteți utiliza

float('inf')

în mod similar, un număr mai mic decât toate celelalte:

float('-inf')

Acest lucru funcționează în ambele python 2 și 3.

Comentarii (5)

În Python numere întregi va comuta automat la o dimensiune fixă int reprezentare într-o variabilă latime lung reprezentarea după ce trece de valoarea sys.maxint, care este fie 231 - 1 sau 263 - 1, în funcție de platformă. Observa " L " care se anexează aici:

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

De Python manual:

Numere sunt create de numerice, literale sau ca urmare a construit în funcții și operatori. Fără podoabe întreg literali (inclusiv binar, hexazecimal și octal numerele) randament simplu de numere întregi, cu excepția cazului în care valoarea ei denotă este prea mare pentru a fi reprezentat ca un simplu număr întreg, în care caz se produce un întreg lung. Întreg literali cu un 'L' " sau " 'l' sufixul randament numere întregi lungi ('L' este de preferat, deoarece1l` pare prea mult ca unsprezece!).

Python încearcă foarte greu să mă prefac sale sunt numere întregi matematice de numere întregi și sunt nemărginit. Se poate, de exemplu, se calculează o googol cu usurinta:

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
Comentarii (1)

Pentru Python 3, este

import sys
max = sys.maxsize
min = -sys.maxsize -1
Comentarii (10)

Puteți folosi 'inf' astfel: import math bool_true = 0 < matematica.inf bool_false = 0 < -matematica.inf Se referă: matematică — funcții Matematice

Comentarii (1)

Dacă doriți max pentru matrice sau o listă de indici (echivalentul a size_t în C/C++), puteți utiliza numpy:

np.iinfo(np.intp).max

Acest lucru este la fel ca sys.maxsize cu toate acestea avantaj este că tu nu't nevoie de import sys doar pentru acest lucru.

Dacă doriți max pentru nativ int pe masina:

np.iinfo(np.intc).max

Poti sa te uiti la alte tipuri disponibile în doc.

Pentru plutește puteți utiliza, de asemenea, sys.float_info.max.

Comentarii (0)

Mă bazez foarte mult pe comenzi de genul asta.

python -c 'import sys; print(sys.maxsize)'

Max int a revenit: 9223372036854775807

Pentru mai multe referințe pentru 'sys' ar trebui să-acces

https://docs.python.org/3/library/sys.html

https://docs.python.org/3/library/sys.html#sys.maxsize

Comentarii (1)