Maksimālās un minimālās vērtības ints

Es meklēju minimālās un maksimālās vērtības veseliem skaitļiem python. Piemēram, Java ir Integer.MIN_VALUE un Integer.MAX_VALUE. Vai ir kaut kas līdzīgs python?

Risinājums

Python 3

Python 3 versijā šis jautājums nav piemērojams. Vienkāršais int tips ir neierobežots.

Tomēr patiesībā jūs varētu meklēt mašīnas vārda lielumu. Tas joprojām ir pieejams Python 3 kā sys.maxsize.

Python 2

Python 2 ir pieejama vienkāršu int vērtību maksimālā vērtība kā sys.maxint:

>>> sys.maxint
9223372036854775807

Minimālo vērtību var aprēķināt ar -sys.maxint - 1, kā parādīts šeit.

Tiklīdz šī vērtība tiek pārsniegta, Python vienmērīgi pārslēdzas no vienkāršiem uz gariem veseliem skaitļiem. Tāpēc vairumā gadījumu jums to nebūs jāzina.

Komentāri (13)

sys.maxint konstante ir izņemta no Python 3.0 un turpmāk, tā vietā izmantojiet sys.maxsize.

Integers

  • PEP 237: Būtībā long pārdēvēts par int. Tas nozīmē, ka ir tikai viens iebūvēts integrālais tips ar nosaukumu int; bet tas lielākoties uzvedas kā vecais long tips.
  • PEP 238: Izteiciens, piemēram, 1/2, atgriež float. Izmantojiet 1//2, lai iegūtu saīsinošu uzvedību. (Pēdējā sintakse pastāv jau gadiem ilgi. vismaz kopš Python 2.2.)
  • Konstante sys.maxint tika izņemta, jo vairs nav veselo skaitļu vērtības ierobežojuma. Tomēr sys.maxsize var izmantot kā veselu skaitli, kas ir lielāks par jebkuru praktisku saraksta vai virknes indeksu. Tas atbilst implementācijas "dabiskajam" veselā skaitļa lielumam un parasti ir tāds pats kā kā sys.maxint iepriekšējās versijās uz tās pašas platformas (pieņemot, ka sys.maxint tās pašas veidošanas opcijas).
  • Garā veselā skaitļa repr() vairs neietver beigu L, tāpēc kods, kas beznosacījumu atdalīs šo rakstzīmi, nogriezīs > > * Garā veselā skaitļa repr(). pēdējais cipars. (Tā vietā izmantojiet str().)
  • Astoņciparu literāli vairs nav formā 0720; tā vietā izmantojiet 0o720.

Skatīt : https://docs.python.org/3/whatsnew/3.0.html

Komentāri (0)

Python veselie skaitļi automātiski pārslēdzas no nemainīga lieluma int atveidojuma uz mainīga platuma long atveidojumu, tiklīdz nododat vērtību sys.maxint, kas ir vai nu 231 - 1, vai 263 - 1 atkarībā no jūsu platformas. Ievērojiet šeit pievienoto L:

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

No Python rokasgrāmatas:

Skaitļi tiek radīti ar skaitliskiem literāliem vārdiem vai kā iebūvēto funkciju un operatoru rezultāts. Nepielāgotie veselu skaitļu literāli (ieskaitot bināros, sešciparu un astotciparu skaitļus) veido vienkāršus veselus skaitļus, ja vien vērtība, ko tie apzīmē, nav pārāk liela, lai to atveidotu kā vienkāršu veselu skaitli, un tādā gadījumā tie veido garu veselu skaitli. Veselo skaitļu literāli ar 'L' vai 'l' piedēkli dod garus veselos skaitļus ('L' ir vēlams, jo 1l izskatās pārāk līdzīgi vienpadsmit!).

Python ļoti cenšas izlikties, ka tā veselie skaitļi ir matemātiski veseli skaitļi un nav ierobežoti. Tas, piemēram, var viegli aprēķināt googol:

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
Komentāri (1)