2. Dades numèriques

A Python hi ha diferents tipus de dades numèriques que es poden utilitzar per funcionar amb números. Els principals tipus de dades numèriques són els nombres enters (int), els números de punts flotants (float) i els nombres complexos (complexos) que, de moment, no tractarem.

Nombres enters
Els nombres enters són nombres sencers, positius o negatius sense decimals. Per exemple: 1, -2 i 100
Punt flotant
Els números de punts flotants són nombres amb decimals. Per exemple: 1.5, 3.14 i -0,75

Nota

A Python els decimals es separen amb un punt. En castellà no és la manera correcta de separar els decimals, ja que s’utilitza la coma, però els decimals de Python no es tradueixen de l’estàndard anglosaxó a la norma espanyola perquè això comportaria errors en el codi.

A Python és fàcil treballar amb aquests tipus de dades numèrics mitjançant operadors matemàtics comuns com la suma, la resta, la multiplicació, la divisió o la potència. També és possible realitzar operacions més avançades com ara el càlcul del mòdul, l’arrodoniment, el truncament, les funcions trigonomètriques, etc. mitjançant funcions especials.

Operacions amb números sencers

Els nombres sencers són nombres sense decimals. Les operacions bàsiques que es poden aplicar a tots els números són les següents:

Símbol Operació
``+' Addició
``` Sostracció
``*' Multiplicació
`` //` Divisió sencera (sense calcular decimals)
``%' Resta d’una divisió
`` **` Potència (elevat a un número)

Copieu els exemples següents a l’entorn inactiu per verificar que funcionen correctament:

>>> 2 + 6
    8
>>> 5 - 9
    -4
>>> 11 // 3
    3
>>> 11 % 3
    2
>>> 5 ** 2
    25

El nombre sencer en Python pot ser molt gran i tenir moltes xifres de precisió:

>>> 123 ** 456
    992500687720988567008314620574696326372959408198869005198162
    988813828671047493990779211286614261446380554242369362718724
    928003527416499021181438196726015699981001207904967595176364
    654458956257416098662099005001984071532446047789680169630280
    503102614176159144687299182406854878786176459769390634643579
    861657117309763994785076492286863414669671679101266533421349
    427448514638999274870924866109771461127635671016726459531321
    964814393398730170881404146612711985003332557130961423351514
    146306516830655187840812036784877030028020820912366035190262
    568806244996817813872275740354848312715156831237421490955692
    604636096559777009388445806119312464951662086955403136981400
    116380273225662526897808381363518287953142721621112222311709
    017156123557013475523715300136938553798348656670600146433024
    591004297836539669137830022907842834556282833554705299329560
    514844771293338811599302127586876027950885792304316616960102
    32187390436601614145603241902386663442520160735566561

Operacions amb números de coma flotants

Els números de coma flotant són nombres amb decimals.

Els números de coma flotant perden la gran precisió que tenen els números sencers i només emmagatzemen 16 xifres de precisió. La mida màxima d’un nombre de coma flotant també és menor (10^307) que la mida màxima d’un nombre enter (10^4300).

El número 2 complet de coma flotant es veurà com a 2.0, amb un zero afegit després del punt decimal.

Les operacions bàsiques que es poden aplicar als números de coma flotants són les següents:

Símbol Operació
``+' Addició
``` Sostracció
``*' Multiplicació
``/' Divisió amb decimals
``%' Resta d’una divisió
`` **` Potència (elevat a un número)
`` Rodó (número, dígits)` Arrodoneix una coma flotant a `` dígits 'decimals.

Copieu els exemples següents a l’entorn inactiu per verificar que funcionen correctament:

>>> 2.0 + 6.0
    8.0
>>> 5.0 - 9.0
    -4.0
>>> 11 / 3
    3.6666666666666665
>>> 11.0 % 3.5
    0.5
>>> 5.0 ** 3.2
    172.4662076826519
>>> round(3.1415926, 4)
    3.1416

Errors decimals en coma flotant

Els números de coma flotant s’emmagatzemen dins de l’ordinador com a números binaris (compostos de zeros i alguns) i no com a nombres decimals. La representació d’aquests números a la pantalla es fa convertint els números binaris en nombres en format decimal. Això fa que els errors es produeixin a l’hora d’emmagatzemar i realitzar càlculs amb decimals. Un exemple pràctic és la suma següent:

>>> 0.1
    0.1
>>> 0.2
    0.2
>>> 0.1 + 0.2
    0.30000000000000004

Els números decimals s’emmagatzemen amb un petit error que no és visible a la pantalla. Tanmateix, la suma dels dos nombres decimals dóna lloc a un nombre amb un petit error visible en el número 17 decimal.

Aquests errors d’arrodoniment només es produeixen amb la part decimal dels números de coma flotant i no es produeixen amb nombres sencers, tot i que els emmagatzemem en format coma flotant:

>>> 1.0 + 2.0
    3.0

Tipus de conversió

Hi ha diversos casos en què es poden convertir les dades de nombres sencers en coma flotant o viceversa.

Divisió de dos números sencers

L’operació de divisió amb decimals / `aplicat a nombres sencers pot donar lloc a un nombre amb decimals, que s’emmagatzemaran com a número de coma flotant.

>>> 5 / 3
    1.6666666666666667
Operacions mixtes entre nombres enters i flotants

Una operació entre un nombre enter i un número de coma flotant donarà lloc a un número de coma flotant.

>>> 5 * 2.0
    10.0
>>> 5 + 2.0
    7.0
>>>
Conversió del tipus de força

Es pot veure obligat a fer un número d’un tipus a un altre amb les funcions següents:

  • `` Int (n) `convertir -se en un nombre enter eliminant la part decimal.
  • `` float (n) `` es converteix en un número de coma flotant.

Exemples de conversions (també anomenades repartiment):

>>> int(5.6)
    5
>>> float(8)
    8.0

Altres operacions matemàtiques

Per realitzar més operacions matemàtiques amb nombres sencers o amb números de coma flotants, cal importar les matemàtiques <https://docs.python.org/es/3/library/math.html>`__ que dóna accés a multitud d’operacions matemàtiques avançades.

Abans d'utilitzar la llibreria "Math", cal importar -la dins del nostre programa. La paraula clau `` importació 's'utilitza per importar qualsevol llibreria Python, que donarà accés a moltes funcions addicionals.

Aquest és un exemple:

>>> import math
>>> math.gcd(24, 18)
    6

En aquest exemple, s'ha utilitzat la funció "matemàtica.gcd ()` `que retorna el màxim divisor comú (més gran divisor comú) de diversos números.

Podeu veure totes les funcions de la biblioteca de matemàtiques a la documentació oficial de la llengua Python <https://docs.python.org/es/3/library/math.html>`__.

Exercicis

  1. Calculeu la suma de les distàncies següents: 100m, 15m, 50m, 80m

  2. Calculeu els 55 quadrats sabent que el quadrat d’un nombre equival a augmentar aquest nombre a 2.

    El resultat ha de donar 3025

  3. Calculeu la mitjana d’aquestes notes: 6, 7, 6, 8

    Tots els números s’han d’afegir i dividir el resultat per quatre. Utilitzeu parèntesis perquè l'operació funcioni bé. (6 + 7 + 6 + 8) / 4

    El resultat ha de donar 6,75

  4. Arrodoneix el resultat abans d’un sol decimal.

    El resultat ha de donar 6,8

  5. Calculeu la resta de divisions 53 per 7.

    El resultat ha de donar 4

  6. Calculeu el número següent a 80 que dividit per 7 dóna com a descans zero.

    Heu d’utilitzar el descans de l’operador d’una divisió ``% 7` amb cadascun dels números 80, 81, 82, 83, etc. fins que la resta valgui zero.