Max Int Pythonissa: kokonaislukujen enimmäisrajojen ymmärtäminen

Kun työskentelet kokonaislukujen kanssa Pythonissa, sinun tulee tietää enimmäisarvo, jonka koodisi voi käsitellä. Tämä riippuu siitä, käytätkö Python 2:ta vai Python 3:a.

Python 2:ssa on Max Int -vakio ( sys.maxint ), joka määrittää enimmäiskokonaisluvun. Python 3 on poistanut kokonaislukujen enimmäisrajan, ja sitä rajoittavat vain järjestelmäresurssit, joilla koodi suoritetaan.

Tämä artikkeli . Opit pääsemään ja käyttämään Python 2:n ja 3:n rajoituksia esimerkkikoodin avulla. Opit myös välttämään virheet ja muistin ylikuormituksen suurilla numeroilla.

Aloitetaan!

Sisällysluettelo

Pythonin kokonaislukujen nopea selitys

Max Int Pythonissa: kokonaislukujen enimmäisrajojen ymmärtäminen

Matemaattiset kokonaisluvut ovat kokonaislukuja, jotka voivat olla positiivisia, negatiivisia tai nollia. Niissä on rajoittamaton tarkkuus, mikä tarkoittaa, että ne voivat kasvaa niin suuriksi kuin järjestelmän muisti kestää.

Nämä kolme numeroa ovat kokonaislukuja:

  • 99

  • -923 230 101 493

  • 0

Sitä vastoin kellukkeet edustavat reaalilukuja ja kirjoitetaan desimaalipisteellä. Float voidaan ilmaista myös tieteellisellä merkinnällä. Tässä on esimerkkejä kellukkeista:

  • 3.14

  • -0,5

  • 1,23e-4

Python 2 versus Python 3

Max Int Pythonissa: kokonaislukujen enimmäisrajojen ymmärtäminen

Yksi suurimmista muutoksista Python 2: sta Python 3:een oli kokonaislukujen käsittely. Useimmat kehittäjät työskentelevät nyt Python 3:n kanssa, mutta saatat kohdata vanhempaa koodia, joka toimii suurten kokonaislukujen kanssa. On hyödyllistä ymmärtää näiden kahden version väliset erot.

Kokonaisluvut Python 2:ssa

Python 2:ssa on kaksi numeerista tyyppiä, jotka voivat edustaa kokonaislukuja: int ja long . Int-tyyppiä rajoittavat enimmäis- ja vähimmäisarvot, jotka se voi tallentaa. Maksimi on käytettävissä vakiolla sys.maxint .

Pitkä tyyppi voi tallentaa suurempia lukuja kuin suurin kokonaislukukoko. Jos toiminto tavallisilla int-arvoilla tuottaa arvon sys.maxint -arvon yli , tulkki muuntaa tietotyypin automaattisesti pitkäksi.

Kokonaisluvut Python 3:ssa

Python 3:lla ei ole tätä kokorajoitusta. Maxint - vakio poistettiin Python 3:n sys- moduulista, kun int- ja long-tietotyypit yhdistettiin.

Python 3:n tavallinen int-tyyppi on rajoittamaton, mikä tarkoittaa, että se voi tallentaa minkä tahansa kokonaisluvun ilman erillistä pitkää kokonaislukutyyppiä.

Tämä tekee ohjelmoijille yksinkertaisempaa käsitellä kokonaislukuja huolehtimatta suurimmasta mahdollisesta arvosta tai vaihtamatta int:n ja longin välillä.

Python's Max Int: mikä se on ja miksi sillä on merkitystä

Max Int Pythonissa: kokonaislukujen enimmäisrajojen ymmärtäminen

Pythonin max int viittaa enimmäiskokonaislukuarvoon, jonka Python-tulkki pystyy käsittelemään.

Joillakin kielillä, kuten C tai Java, on kiinteä enimmäiskoko kokonaislukuille, jotka perustuvat 32- tai 64-bittiseen tallennustilaan. Python eroaa siitä, että se säätää dynaamisesti bittien määrää tallennettavan arvon perusteella.

Pythonin kokonaislukujen koko voi kasvaa niin kauan kuin koneellasi on muistia sitä varten. Tätä kutsutaan "mielivaltaiseksi tarkkuudeksi".

Tämä ei tarkoita, että Python voi käsitellä äärettömiä lukuja! Käytännön raja on aina olemassa, koska järjestelmän muisti on rajallinen.

Tämä raja on kuitenkin yleensä niin suuri, että useimmissa käytännön sovelluksissa se voi yhtä hyvin olla ääretön.

Sys.MaxIntin käyttäminen Python 2:ssa

Max Int Pythonissa: kokonaislukujen enimmäisrajojen ymmärtäminen

Python 2:ssa voit tarkastella sys.maxint- vakion määrittelemää enimmäiskokonaislukua seuraavasti:

import sys

print("The maximum integer value is: ", sys.maxint)

Vakiota käytetään usein määrittämään silmukoiden yläraja. Tämä esimerkkikoodi varmistaa, että indeksi ei ylitä enimmäiskokonaislukua.

import sys

for i in range(sys.maxint):
     # do some stuff

Voit myös tarkistaa käyttäjän syötteen varmistaaksesi, että numero ei ylitä enimmäisarvoa.

Sys.MaxSize:n käyttäminen Python 3:ssa

Voit käyttää sys.maxsizea Python 3:ssa korvaamaan Python 2:n sys.maxint .

On tärkeää ymmärtää, että tämä ei edusta suurinta kokonaislukuarvoa, jota Python 3 voi käsitellä. Maxsize - ominaisuus edustaa kokonaisluvun enimmäisarvoa, jota voidaan käyttää Pythonin sisäänrakennettujen tietorakenteiden, kuten luetteloiden ja merkkijonojen, indeksinä.

Tämä arvo riippuu käytettävissä olevasta muistista, joten se voi vaihdella eri järjestelmien tai kokoonpanojen välillä.

Sys.maxsize-tiedoston tarkka arvo on yleensä 2**31 – 1 32-bittisellä alustalla ja 2**63 – 1 64-bittisellä alustalla. Nämä ovat enimmäisarvot, joita voidaan käyttää kiinteäkokoisille kokonaisluvuille näillä alustoilla.

Tässä on esimerkki funktiosta, joka käyttää sys.maxsizea välttääkseen niin suuren luettelon luomisen, että se epäonnistuu muistin puutteen vuoksi:

import sys

def create_list(input_number):
     if input_number > sys.maxsize:
          print("the requested size is too large.")
          return

     large_list = [0] * input_number

Muista tuoda sys- moduuli ennen sys.maxsize -tiedoston käyttöä . Se ei ole sisäänrakennettu avainsana, vaan osa sys- moduulia.

Kuinka löytää enimmäiskokonaisluku tietorakenteesta

Python 2:ssa ja 3:ssa voit käyttää max()-komentoa löytääksesi suurimman arvon iteroitavissa olevasta tietorakenteesta, kuten luettelosta, tuplesta tai .

Tässä on esimerkki suurimman kokonaisluvun löytämisestä luettelosta:

numbers = [1, 9999, 35, 820, -5]

max_value = max(numbers)

print(max_value)

Tämä esimerkkikoodi tulostaa numeron 9999.

Vastapuoli on min()-funktio, joka palauttaa minimiarvon.

Alueen suurimpien arvojen löytäminen on tärkeää suoritettaessa laskelmia, kuten lineaarista regressiota. Jos erittäin suuret arvot ylittävät kokonaislukurajat, voit törmätä epätarkkuuksiin tai virheisiin laskelmissa.

3 vinkkiä enimmäiskokonaislukuongelmien välttämiseen

Pythonin joustavuus tuo mukanaan useita haittoja.

Operaatiot, joissa on suuria kokonaislukuja, voivat olla hitaampia mielivaltaisen tarkkuuden hallinnan ylikuormituksen vuoksi.

Max Int Pythonissa: kokonaislukujen enimmäisrajojen ymmärtäminen

Suuret kokonaisluvut voivat myös lisätä merkittävästi ohjelman muistin kulutusta, mikä saattaa johtaa muistivirheisiin.

Tässä on kolme vinkkiä ongelmien välttämiseen:

Vinkki 1: Valitse sopivat tietotyypit

On monia tilanteita, joissa kokonaislukuarvojesi tarkka koko ei ole ratkaiseva. Harkitse pienemmän, kiinteän kokoisen tietotyypin käyttöä, kun näin on.

Tämä välttää tarpeettoman muistin kulutuksen ja sovelluksen hidastumisen.

Vinkki 2: Käytä tehokkaita ohjelmointikäytäntöjä

Ole tietoinen operaatioista, jotka käsittelevät suuria kokonaislukuja ja suunnittelualgoritmeja tämän mielessä.

Tämä voi tarkoittaa laskelmien jakamista pienempiin osiin tai likiarvojen käyttöä, kun suuren luvun tarkka tarkkuus ei ole tarpeen.

Vinkki 3: Seuraa muistin käyttöä

Seuraa Python-ohjelmasi muistin käyttöä ja optimoi koodisi muistin jalanjäljen pienentämiseksi.

Tämä voi sisältää suurten muuttujien poistamisen, kun niitä ei enää tarvita, tai suurten tietojoukkojen tehokkaaseen käsittelyyn suunniteltujen työkalujen tai kirjastojen käyttämistä.

Lopulliset ajatukset

Python-koodisi käsittelemän enimmäiskokonaisluvun ymmärtäminen on välttämätöntä kestävien ja tehokkaiden ohjelmien kirjoittamiseksi. Tämä artikkeli tutki konseptia sekä Python 2:ssa että Python 3:ssa.

Opit käyttämään ja käyttämään näitä enimmäiskokonaislukuarvoja molemmissa Python-versioissa. Työskenteletpä sitten Python 2:n tai 3:n kanssa, muista vinkkimme koodin optimoimiseksi muistin ylikuormituksen välttämiseksi.

Tämän tiedon avulla olet hyvin varusteltu hyödyntämään Pythonin kokonaislukujen käsittelykykyä!


LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.

LuckyTemplates -taulukoiden luominen UNION & ROW -funktiolla

LuckyTemplates -taulukoiden luominen UNION & ROW -funktiolla

Tässä blogissa näytän sinulle, kuinka voit luoda LuckyTemplates-taulukoita käyttämällä kaavaa, joka yhdistää UNION-funktion ja ROW-funktion.

On-Premises Data Gateway Power Automatessa

On-Premises Data Gateway Power Automatessa

Tutustu siihen, kuinka On-premises-tietoyhdyskäytävä antaa Power Automaten käyttää työpöytäsovelluksia, kun käyttäjä on poissa tietokoneesta.