05:00

Az alapvető adattípusok; numerikus

Tanulás az anyagot a megelőző négy fejezetet, már előkészítette az utat a további vizsgálatot a Python - ismerte az alapvető fogalmak objektumorientált programozást, és hallott változókat. De tudjuk, hogy lehet tárolni ezeket a változókat? Valószínűleg már tudta, hogy a változók tartalmaznia kell minden hasznos információt, beleértve a dátum és idő értékek, karakterláncok, és akár egész funkciókat. De szükséges, hogy bizonyos szabályokat, hogy mentse az adatokat, és azok értelmezését Python. Ahhoz, hogy megértsük ezeket a szabályokat, akkor tisztában kell lennie az adattípusok támogatott Python. Ez a téma csak szentelt e fejezet és a következő. Itt fogjuk megvitatni, hogy milyen típusú adatot reprezentáló numerikus értékek:

  • egész szám (integer);
  • hosszú egész (long integer);
  • lebegőpontos szám (lebegőpontos);
  • komplex szám (komplex).

Ebben a fejezetben, és a következő csak akkor tudunk használni alapvető adattípusok, amelyek magukban foglalják a számot, sorrendje és szótárban. A funkciók lesz szó a 7. fejezetben, a többi felhasználó által definiált típusok vagy tárgyalt részben II. Most zaymomsya numerikus adattípusok.

A számítógépek nem rendelkezik saját intelligenciával, így a programozók a legtöbb programozási nyelv, kifejezetten meg kell jelezze, hogy milyen típusú a számok, amelyek egy adott értéket. Sőt, egy összeállított nyelvet ezen információ szükséges előzetesen tájékoztatni, azaz a változó típusát kell jelenteni, mielőtt a változó inicializálása. (Inicializálás -. Ezt a feladatot az első érték) Kísérlet értéket rendelni, amely nem egyezik a bejelentett fajta érte, sikertelen lesz a fordító (amit biztosan „öröm”). Tegyük fel például, hogy a C-te, hogy egy változót az alábbiak szerint:

Ez a vonal azt jelenti, hogy az n változó tartalmaz egy pozitív vagy negatív egész szám. Tegyük fel, hogy valahol a kódot a program megpróbálja végrehajtani ezt a feladatot: n = 3,14159;

* Megjegyzés. B. Shipkova: utolsó jó tanácsot, sőt, nagyon hasznos. Nem csak, hogy az eredmény félrevezető lehet tekintve pontosabb számításokat, és még a saját átalakítás egyik típusról a másikra meglehetősen költséges művelet a processzor. Ne felejtsd el.

Python munka azon a feltételezésen alapul, hogy a programozó tudja, mit csinál. Statikus változók típusát más nyelveken - ez az eredménye a végrehajtás a másik felfogás az, hogy a programozó meg kell védenie magát is. Dinamikusan típusos, ha nem visszaélni, jelentősen csökkenti, és egyszerűsíti a kódot. Tegyük fel például, hogy olvassa el a karaktersorozatot a felhasználó által megadott. Tudni szeretné, hogy a húr adatok számát és ezeket felhasználja a programot. Ha a felhasználó nem léphet be egészek, hosszú egész és lebegőpontos számok, akkor a rendes programozási nyelv, amit meg kell tennie, hogy a legalább három változót három különböző típusú. És Python elég lesz csak egy változó, amely tetszőleges számú három érvényes típusok. És ez azért lehetséges, mert a dinamikus meghatározását adattípusokat Python.

Kezdjük a részletes vitát a témában már ismeri típus - egészek.

Listing 5.1. Műveletek maxint

[MSC 32 bit (Intel)] Win32

>>> from sys import *

print "128-bites gép:"

print "maxint:" z "-maxint:" -z

Ábra. 5.1 eredményét mutatja inttest.py programot.

Megjegyezzük, hogy a 32-bites gép a legnagyobb egész szám, amely lehet használni az az érték (2 ** 31L) -1. Ez azért van, mert egy kicsit jelöli, míg a - jel pozitív vagy negatív. A legtöbb rendszerben, ez az úgynevezett legmagasabb bináris bit, vagy csak egy jel kicsit. Ennek az az oka, hogy nem tudja használni egy szám, ami pontosan megegyezik az értéke 2 ** 31L (azaz 21.474.836 ^ 8), meglehetősen bonyolult és rendetlen magyarázni az adott pillanatban. Ez összefügg a módszer számok ábrázolása a bináris rendszer.

Az érdeklődők arra ösztönzik, hogy olvassa el a „Példák és gyakorlatok” E fejezet tartalmaznak utalásokat további anyagokat. Közülük talál szervereket kutatás helyzeti száma rendszerekben, ahol a párhuzamos és kiemeli kérdéseket számítógépes számok ábrázolása. Más programozási nyelvek lehetővé teszi, hogy tárolja előjel nélküli egész számok, és olyan számok, amelyeket nyilvánvalóan nevezett előjel nélküli (unsigned). Előjel nélküli számok használatát teszi lehetővé mind a 32 bites, de csak, hogy képviselje a pozitív egész számok.

5.1 ábra. A program eredményeként inttest.py

Hasonlóképpen, a 64 bites gép a legnagyobb egész szám, amely felhasználható az az érték (2 ** 63) - 1, és ez (2 ** 127), 128-bites gépek - 1. munkád tetszik általában akkor nem éri el a határértéket maxint még a 32 bites gépek. A maximális értékét az egész 64 bites és 128 bites ábrázolás - ez egy nagyon nagy szám, amelyre szükség lehet csak Űrkutatási vagy számolja meg a molekulákat.

De ha a probléma a maximális (minimális) értékek még mindig ott van, ne ess kétségbe. Hosszú egész - ez egy módja, hogy kb ezeket a korlátozásokat Python, és megbeszéljük velük a következő részben.

Long integer típusú hosszú egész, ami néha azt is megállapította, neve alatt long vagy bigints, jelen Python kezdeni. Tény, hogy úgy viselkednek, ugyanúgy, mint a közönséges egész számok, de semmilyen módon nem korlátozzák határokat. Conversion egész szám hosszú egész, és fordítva, sajnos, nem eléggé átlátható eljárást programozók. De van remény, hogy Guido megszüntesse ezeket a különbségeket a jövőben változatban Python. Azonban, akkor próbáld ki magad, hogy egy algoritmust, amely automatikusan elvégzi a konverziót, ha szüksége van rá.

Mit jelent az a szó nem korlátozza semmilyen határokat? A valóságban ez nem jelenti azt, hogy tudod használni a számot, hogy megy a végtelenségig. Ez csak az a tény, hogy a szokásos korlátozások jelentősen bővült. Mi jön le, hogy a gyakorlatban? Sőt, a mérete adott hosszú egész amelyekre csak a tényleges adódó korlátozások jellemzői a járművet. Például nem tudja használni a programjában számos, ami szükséges, hogy tartsa több memóriával rendelkezne, mint valójában. Tehát, az otthoni gépen a rendszer Server Windows NT 4.0 van telepítve 256 MB RAM-mal. Ideális esetben, ha figyelmen kívül hagyjuk a memória szükséges kiadások működését az operációs rendszer, és a legtöbb a Python, valamint számos kötelező hasznosság, a legnagyobb hosszú egész, hogy én elméletileg használni kell beleférjen a 256 MB. Ennek eredményeként, mi lett volna a hosszú ideje valami körülbelül 2 `` 013` 265 920 számjegy. Ez egy elég tisztességes érték, de mégis véges. A számítógép belső ábrázolása hosszú egész tárolja a 16-ryazryadnye szám, amelynek maximális értéke 32 768 Mivel 32 768-2 van a 15. fokozat, nyilvánvalóvá válik, hogy a 16. bitet használunk valami mást. Ez a 16-edik bit végrehajtásához alkalmazott „túlcsordulás flag” (azaz túlmutató), amelyet a szervezet a szállítási műveletek, hitelfelvétel, stb az ugyanúgy csinálni, amikor döntenek a tervezési feladat papíron. Ahhoz, hogy jobban megértsük, hogyan rendezett nagy egész számokat, próbálja meg a gyakorlatokat adott a végén ebben a fejezetben.

Amikor dolgozik a hosszú számokat kell figyelni, hogy ne csak a képességeit a számítógép, hanem a türelem felhasználók a program. Például, ha egy program állítólag kinyomtatni száma googolplex, a felhasználónak meg kell ülni a számítógép 5 év, vagy még több.

nibailes / P140 / lecture22 / index.htm.) Listing 5.3 ábra egy egyszerű eljárás hosszának meghatározására a tér fényévre kilométer.

kém = 60 * 60 * 24 * 365,2422

n = hosszú (Spy) * hosszú (p)