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í)

 

from math import floor

floor (9.6)

#Arroxa o resultado de 9

Arroxa o número decimal inmediatamente superior

operación teitoi

 

from math import ceil

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(nome da lista)

#tamen para cadeas

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

non hai equivalente

min (nome da lista)

Suma unha lista de números

non hai equivalente

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

sum((nome da lista))

Ordena  unha lista numérica

 

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. 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 print, indicando o resultado da mesma. Se tes dúbidas do que está a facer modifica o valor das variables para ver as diferencias.

    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 convirta euros a dólares ou fai un programa que faga a conversión contraria; de dolares a euros. Primeiro debe preguntar a como está o cambio.

  6. Fai un programa que cree unha lista con 5 números menores de 1000 ao chou. O programa deberá ensinarche os números que saíron e dicirche cal é o maior e cal é o menor de todos.

  7. Fai un programa que che pida unha lista de 5 nomes e os almacene nunha lista. Despois ordenar a lista alfabeticamente

  8. 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]

    Debería amosar resultados como este:

     

  9. 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