Saltar a contenido

Algo de aritmética

Operadores

Ya hemos visto cinco operadores aritméticos:

  • Suma:

    >>> 25+3
        28
    
  • Resta:

    >>> 25-3
        22
    
  • Multiplicación:

    >>> 25*3
        75
    
  • División:

    >>> 25/3
        8.333333333333334
    
  • Potencia:

    >>> 25**3
        15625
    

Las operaciones de división generan un resultado float, aunque los operandos sean int. Si queremos una división entera, sin decimales, podemos usar:

  • Para el cálculo del cociente:

    >>> 25//3
        8
    
  • Para calcular el resto de la división:

    >>> 25%3
        1
    

Ambas operaciones devuelven un resultado int. Los operandos deberían ser int. Python no se quejará si son float, aunque el resultado puede no ser de mucha utilidad:

>>> 25.2//3.1
    8.0

>>> 25.2%3.1
    0.3999999999999986

¿Como se calcula el resto de una división? En tres fases. Usemos la variable shell _ para comprobarlo:

>>> 25.2//3.1
    8.0

>>> _ * 3.1
    24.8

>>> 25.2 - _
    0.3999999999999986

Signo de las operaciones

Recordemos que los valores negativos se representan anteponiendo un símbolo -

>>> 100-230
    -130

Podemos poner un valor negativo como literal en una expresión:

>>> 100 + (-1)
    99

Veamos algunas multiplicaciones con signo:

>>> 10 * 10
>>> 100

>>> 10 * -10
>>> -100

>>> -10 * 10
>>> -100

>>> -10 * -10
>>> 100

Divisiones:

>>> 10/10
    1.0

>>> 10/-10
    -1.0

>>> -10/10
    -1.0

>>> -10/-10
    1.0

El módulo random

El módulo random proporciona funciones que devuelven números al azar. Por ejemplo:

>>> import random
>>> random.randint(3, 9)
    5

La función randint(a,b) devuelve un número al azar entre a y b

La función random() devuelve un número float entre 0 y 1:

>>> random.random()
    0.6749348988795146

¿Como podemos obtener un número float entre 0 y un valor n? Multiplicando el resultado de random() por n:

>>> random.random()*1000
    888.8664473749074

>>> random.random()*1000
    593.2422282656003

de esta foma, obtendremos valores entre 0.0 y 1000.0