Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Wanneer u met gehele getallen in Python werkt, moet u weten wat de maximale waarde is die uw code aankan. Dit hangt ervan af of u Python 2 of Python 3 gebruikt.
Python 2 heeft een Max Int-constante ( sys.maxint ) die de maximale integerwaarde definieert. Python 3 heeft de maximale limiet van gehele getallen verwijderd en wordt alleen beperkt door de systeembronnen waarop de code draait.
Dit artikel legt het concept uit in de oudere en nieuwere versies van Python . U leert hoe u toegang krijgt tot en gebruikmaakt van de limieten in Python 2 en 3 met voorbeeldcode. U leert ook hoe u fouten en overbelasting van het geheugen met grote getallen kunt voorkomen.
Laten we beginnen!
Inhoudsopgave
Snelle uitleg van gehele getallen in Python
Wiskundige gehele getallen zijn gehele getallen die positief, negatief of nul kunnen zijn. Ze hebben een onbeperkte precisie, wat betekent dat ze zo groot kunnen worden als het geheugen van het systeem aankan.
Deze drie getallen zijn gehele getallen:
99
-923.230.101.493
0
Floats vertegenwoordigen daarentegen reële getallen en worden geschreven met een decimaalteken. Een float kan ook worden uitgedrukt in wetenschappelijke notatie. Hier zijn voorbeelden van drijvers:
3.14
-0,5
1.23e-4
Python 2 versus Python 3
Een van de belangrijkste veranderingen van Python 2 naar Python 3 was het omgaan met gehele getallen. De meeste ontwikkelaars zullen nu met Python 3 werken, maar u kunt oudere code tegenkomen die met grote gehele getallen werkt. Het is handig om de verschillen tussen de twee versies te begrijpen.
Gehele getallen in Python 2
Python 2 heeft twee numerieke typen die gehele getallen kunnen vertegenwoordigen: int en long . Het type int wordt beperkt door de maximale en minimale waarden die het kan opslaan. Het maximum is beschikbaar met de constante sys.maxint .
Het lange type kan grotere getallen opslaan dan de maximale integer-grootte. Als een bewerking op gewone int-waarden een waarde boven sys.maxint oplevert , converteert de interpreter het gegevenstype automatisch naar lang.
Gehele getallen in Python 3
Python 3 heeft deze beperking van grootte niet. De maxint- constante is verwijderd uit de sys- module in Python 3 toen de gegevenstypen int en long werden samengevoegd.
Het gewone int-type in Python 3 is onbegrensd, wat betekent dat het elke integer-waarde kan opslaan zonder dat er een apart lang integer-type nodig is.
Dit maakt het voor programmeurs eenvoudiger om met gehele getallen om te gaan zonder zich zorgen te maken over de maximaal mogelijke waarde of te schakelen tussen int en long.
Python's Max Int: wat het is en waarom het ertoe doet
Python's max int verwijst naar de maximale integerwaarde die een Python-interpreter aankan.
Sommige talen, zoals C of Java, hebben een vaste maximale grootte voor gehele getallen op basis van 32-bits of 64-bits opslag. Python is anders omdat het dynamisch het aantal bits aanpast op basis van de waarde die moet worden opgeslagen.
De gehele getallen van Python kunnen in omvang blijven groeien zolang uw machine geheugen heeft om dit te ondersteunen. Dit wordt "willekeurige precisie" genoemd.
Dit betekent niet dat Python oneindige getallen aankan ! Er is altijd een praktische limiet omdat het geheugen van het systeem eindig is.
Deze limiet is echter over het algemeen zo groot dat deze voor de meeste praktische toepassingen net zo goed oneindig kan zijn.
Sys.MaxInt gebruiken in Python 2
In Python 2 kun je als volgt kijken naar de maximale integerwaarde die wordt gedefinieerd door de constante sys.maxint :
import sys
print("The maximum integer value is: ", sys.maxint)
De constante wordt vaak gebruikt om de bovengrens voor lussen te definiëren. Deze voorbeeldcode zorgt ervoor dat de lusindex niet verder gaat dan de maximale integer-grootte.
import sys
for i in range(sys.maxint):
# do some stuff
U kunt ook gebruikersinvoer controleren om er zeker van te zijn dat een getal de maximale waarde niet overschrijdt.
Sys.MaxSize gebruiken in Python 3
U kunt sys.maxsize in Python 3 gebruiken als vervanging voor sys.maxint in Python 2.
Het is belangrijk om te begrijpen dat dit niet de maximale integerwaarde vertegenwoordigt die Python 3 aankan. De eigenschap maxsize vertegenwoordigt de maximale waarde van een geheel getal dat kan worden gebruikt als index voor de ingebouwde gegevensstructuren van Python, zoals lijsten en tekenreeksen.
Deze waarde is afhankelijk van het beschikbare geheugen en kan dus veranderen tussen verschillende systemen of configuraties.
De exacte waarde van sys.maxsize is gewoonlijk 2**31 – 1 op een 32-bits platform en 2**63 – 1 op een 64-bits platform. Dit zijn de maximale waarden die kunnen worden gebruikt voor gehele getallen met een vaste grootte op die platforms.
Hier is een voorbeeld van een functie die sys.maxsize gebruikt om te voorkomen dat er een lijst wordt gemaakt die zo groot is dat deze mislukt vanwege een gebrek aan geheugen:
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
Vergeet niet de sys- module te importeren voordat u sys.maxsize gebruikt . Het is geen ingebouwd sleutelwoord maar onderdeel van de sys- module.
Hoe het maximale geheel getal in een gegevensstructuur te vinden
In Python 2 en 3 kun je de max() functie gebruiken om de hoogste waarde te vinden in een iterabele datastructuur zoals een lijst, tuple of set .
Hier is een voorbeeld van het vinden van het grootste gehele getal in een lijst:
numbers = [1, 9999, 35, 820, -5]
max_value = max(numbers)
print(max_value)
Deze voorbeeldcode drukt het nummer 9999 af.
De tegenhanger is de functie min() die de minimumwaarde retourneert.
Het vinden van de grootste waarden binnen een bereik is belangrijk bij het uitvoeren van berekeningen zoals lineaire regressie. Als zeer grote waarden de limieten van gehele getallen overschrijden, kunt u onnauwkeurigheden of fouten in berekeningen tegenkomen.
3 tips om problemen met maximale gehele getallen te vermijden
De flexibiliteit van Python brengt verschillende nadelen met zich mee.
Bewerkingen met grote gehele getallen kunnen langzamer zijn vanwege de overhead van het beheer van willekeurige precisie.
Grote gehele getallen kunnen ook het geheugenverbruik van uw programma aanzienlijk verhogen, wat mogelijk kan leiden tot geheugenfouten.
Hier zijn drie tips om problemen te voorkomen:
Tip 1: Kies de juiste gegevenstypen
Er zijn veel scenario's waarin de exacte grootte van uw integerwaarden niet cruciaal is. Overweeg in dat geval een kleiner gegevenstype met een vaste grootte te gebruiken.
Dit voorkomt onnodig geheugengebruik en het vertragen van uw toepassing.
Tip 2: gebruik efficiënte programmeerpraktijken
Houd rekening met bewerkingen die grote gehele getallen verwerken en ontwerp algoritmen met dit in gedachten.
Dit kan inhouden dat berekeningen in kleinere delen worden opgesplitst of benaderingen worden gebruikt waarbij de exacte precisie van een groot getal niet nodig is.
Tip 3: houd geheugengebruik bij
Houd het geheugengebruik van uw Python-programma bij en optimaliseer uw code om de geheugenvoetafdruk te verkleinen.
Dit kan het verwijderen van grote variabelen zijn wanneer ze niet langer nodig zijn, of het gebruik van tools of bibliotheken die zijn ontworpen om grote datasets efficiënt te verwerken.
Laatste gedachten
Het begrijpen van de maximale gehele waarde die uw Python-code aankan, is essentieel voor het schrijven van robuuste en efficiënte programma's. Dit artikel onderzocht het concept in zowel Python 2 als Python 3.
Je hebt geleerd hoe je deze maximale integer-waarden in beide Python-versies kunt openen en gebruiken. Of je nu met Python 2 of 3 werkt, onthoud onze tips voor het optimaliseren van je code om overbelasting van het geheugen te voorkomen.
Gewapend met deze kennis ben je goed toegerust om de volledige kracht van Python's integer-verwerkingsmogelijkheden te benutten!
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten