Operacións matemáticas con Python

Fíxate no seguinte programa, que suma tres números e realiza a operación en Python.

[Repl.it: Sumar en Python]

 

Como ves parece que Python non sabe sumar. O motivo desta equivocación é a forma que ten de facer os cálculos: para calcular Python primeiro pasa os números a binarios de 53 bits, calcula e aproxima o resultado e despois volve convertelo en decimal. Neste proceso, como hai números que non se poden expresar exactamente ten que redondealos e nese proceso perde exactitude

Así que si precisas que Python faga cálculos moi exactos deberás instalar algunha das súas bibliotecas matemáticas como mpmath, coas que acadar maior precisión.

Pero, supoñendo que o resultado 0.30000000000000004 ten suficiente precisión para ti, podemos facer moitas operacións co programa básico. Na seguinte táboa poñemos unha lista de comandos empregados habitualmente:

 

Comando/significado

Scratch

Python 3

Módulo: é o resto dunha división

operación módulo

 

13%4

División e módulo: arroxa o resultado da división e o resto

operación divmod

 

divmod(13, 4)

Potencias, incluídas as raíces cadradas.

operación potencias

 

9**0.5

10**9

#pero tamén as que non podes facer en Scratch

4**3

3**-3

Redondea un número decimal

operación redondear

 

round (9.6)

#Arroxa o resultado de 10

Trunca un número decimal

(se queres ver a diferenza entre redondear e truncar vai aquí)

 

floor (9.6)

#Arroxa o resultado de 9

Arroxa o número decimal inmediatamente superior

operación teitoi

 

ceil(9.1)

#Arroxa o resultado de 10

Valor absoluto dun número

operación valor absoluto

 

abs(-5)

#Arroxa o resultado de 5

O maior valor dunha lista de números ou palabras (nese caso é o primeiro alfabeticamente)

non hai equivalente

max()

#tamen para cadeas

O menor valor dunha lista de números ou palabras (o último alfabeticamente)

non hai equivalente

min ()

Suma unha lista de números

non hai equivalente

 sum((1, 2, 3, 4, 5))
15

Baralla un conxunto de valores ou unha lista completa, cambiando aleatoriamente a situación dos seus elementos

non hai equivalente

sorted((10, 2, 8, -3, 6))

sorted(("David", "Alicia", "Tomás", "Emilio"))

sorted (nomes)

Escoller un número ao chou

 

from random import randint

#Para xerar un número ao chou hai que importar a biblioteca random

randint (1,10)

 

 

Exercicios:

  1. Repaso para quen o necesite: se aínda non tes claro o de redondear, truncar e similar NON sigas adiante e adica un pouco de tempo e escribir este programa. Logo deberías comentar cada liña, modificar o valor das variables...

    operacións

     

  2. Fai un programa que calcule a letra do DNI. Para iso deberás coñecer como é o algoritmo para conseguir a letra.

    Solo hai que calcular o módulo 23 e asignar a letra que lle corresponde.

    letra do dni

  3. Fai un programa que calcule o NIE dos estranxeiros (é o mesmo algoritmo que no exercicio anterior pero a letra X,Y,Z substitúese por 0,1,2 repetivamente).

  4. Profe, ti truncas, redondeas ou sobes a nota?. Fai un programa que pida a nota que sacaches e te devolva a nota dos tres tipos de profe: profe rañas, profe matemático, profe guai.

  5. Fai un programa que converta euros a dólares. Fai un programa que converta dolares a euros.

  6. Corrixe o seguinte programa que serve para calcular un número decimal partindo dun binario de 4 díxitos

    [Repl.it: Corrixir calcular número decimal]

     

  7. Fai un programa que calcule o número decimal equivalente a calquera  binario de cinco cifras.

Tipos de datos Operacións con listas Operacións matemáticas con Python