Вы находитесь на странице: 1из 94

Introduccin a Python

Germn Augusto Osorio Zuluaga

Generalidades de Python
Python es un lenguaje de muy alto nivel que
permite expresar algoritmos de forma casi
directa (ha llegado a considerarse
pseudocdigo ejecutable).
Se trata de un lenguaje particularmente
adecuado para la enseanza de la
programacin.

Generalidades de Python
Aprender Python antes que C permite estudiar
las estructuras de control y de datos bsicas
con un alto nivel de abstraccin.

De esta manera, entender mejor qu supone,


exactamente, la mayor complejidad de la
programacin en otro lenguaje y hasta qu
punto es mayor el grado de control que nos
otorga.

Operadores
Operadores aritmticos
Operadores para expresiones aritmticas. El nivel de
precedencia 1 es el de mayor prioridad y el 3 el de
menor.

Operadores
Operadores aritmticos (cont.)
Ejercicios
Calcule:

a) 2 + 3 + 1 + 2
b) 2 + 3 * 1 + 2
c) (2 + 3) * 1 + 2
d) (2 + 3) * (1 + 2)

Operadores
Operadores aritmticos (cont.)
Ejercicios
Traduzca las siguientes expresiones matemticas a Python y evalalas.
Trata de utilizar el menor nmero de parntesis posible.
a) 2 + (3 (6/2))
b)
4+6
2+3
c) (4/2)5
d) (4/2)5+1
e) (3)2
f) (32)

Tipos de datos
Enteros y flotantes
Cada valor utilizado por Python es de un tipo
determinado.
Cuando se efecta una operacin, Python tiene en
cuenta el tipo de los operandos a la hora de producir el
resultado.

Si los dos operandos son de tipo entero, el resultado


tambin es de tipo entero, as que la divisin entera
entre los enteros 3 y 2 produce el valor entero 1.

Tipos de datos
Enteros y flotantes (cont.)
>>> 3 / 2
1
Si deseamos obtener resultados de tipo real, deberemos usar
operandos reales. Los operandos reales deben llevar, en
principio, una parte decimal, aunque sta sea nula.
>>> 3.0 / 2.0
1.5

Tipos de datos
Enteros y flotantes (cont.)
Hay diferencias entre enteros y reales en Python ms all
de que los primeros no tengan decimales y los segundos
s.
El nmero 3 y el nmero 3.0, por ejemplo, son
indistinguibles en matemticas, pero s son diferentes en
Python. Qu diferencias hay?
Los enteros suelen ocupar menos memoria.
Las operaciones entre enteros son, generalmente,
ms rpidas.

Tipos de datos
Enteros y flotantes (cont.)
Un nmero flotante debe especificarse siguiendo ciertas
reglas.
En principio, consta de dos partes: mantisa y exponente.
El exponente se separa de la mantisa con la letra e o E.
Por ejemplo, el nmero flotante 2e3 (o 2E3) tiene
mantisa 2 y exponente 3, y representa al nmero 2 103,
es decir, 2000.

Tipos de datos
Enteros y flotantes (cont.)
El exponente puede ser negativo: 3.2e-3 es 3.2 103, o sea, 0.0032. Si un
nmero flotante no lleva exponente debe llevar parte fraccionaria.
Adems: si la parte entera del nmero es nula, el flotante puede empezar
directamente con un punto, y si la parte fraccionaria es nula, puede
acabar con un punto.
Veamos un par de ejemplos:
el nmero 0.1 se puede escribir tambin como .1;

por otra parte, el nmero 2.0 puede escribirse como 2., es decir, en ambos casos
el cero es opcional

Tipos de datos
Enteros y flotantes (cont.)
Es posible mezclar en una misma expresin datos de
tipos distintos.

En Python, utilizamos siempre el punto como carcter de


separacin entre parte entera y fraccionaria de un
nmero.
>>> 3.0 / 2
1.5

Tipos de datos
Enteros y flotantes (cont.)
Python sigue una regla sencilla: si hay datos de tipos
distintos, el resultado es del tipo ms general. Los
flotantes son de tipo ms general que los enteros.
>>> 1 + 2 + 3 + 4 + 5 + 6 + 0.5
21.5

>>> 1 + 2 + 3 + 4 + 5 + 6 + 0.0
21.0

Tipos de datos
Enteros y flotantes (cont.)
Pero, atencin!, puede parecer que la regla no se
observa en este ejemplo:
>>> 1.0 + 3 / 2
2.0
El resultado debiera haber sido 2.5, y no 2.0. Qu ha
pasado? Python evala la expresin paso a paso.
Analicemos el rbol sintctico de esa expresin:

Tipos de datos
Enteros y flotantes (cont.)
Analicemos el rbol sintctico de esa expresin:

Tipos de datos
Enteros y flotantes (cont.)
La divisin es prioritaria frente a la suma, por lo que sta
se lleva a cabo en primer lugar.
La divisin tiene dos operandos, ambos de tipo entero,
as que produce un resultado de tipo entero: el valor 1.
La suma recibe, pues, un operando flotante (el de su
izquierda) de valor 1.0, y otro entero (el que resulta de la
divisin), de valor 1.
El resultado es un flotante y su valor es 2.0.

Tipos de datos
Enteros y flotantes (cont.)
Qu pasara si ejecutramos 1 + 3 / 2.0?
>>> 1 + 3 / 2.0 _
2.5
As pues, la divisin proporciona un resultado
flotante, 1.5, que al ser sumado al entero 1 de la
izquierda proporciona un nuevo flotante: 2.5.

Tipos de datos
Enteros y flotantes (cont.)
Ejercicios
Qu resultar de evaluar las siguientes expresiones?
a) 1 / 2 / 4.0
b) 1 / 2.0 / 4.0
c) 1 / 2.0 / 4
d) 1.0 / 2 / 4
e) 4 ** .5
f) 4.0 ** (1 / 2)
g) 4.0 ** (1 / 2) + 1 / 2
h) 4.0 ** (1.0 / 2) + 1 / 2.0
i) 3e3 / 10
j) 10 / 5e-3
k) 10 / 5e-3 + 1
l) 3 / 2 + 1

Tipos de datos
Valores lgicos
Desde la versin 2.3, Python ofrece un tipo de datos especial
que permite expresar slo dos valores: cierto y falso.

El valor cierto se expresa con True y el valor falso con False.


Son los valores lgicos o booleanos.
Este ltimo nombre deriva del nombre de un matemtico,
Boole, que desarroll un sistema algebraico basado en estos
dos valores y tres operaciones: la conjuncin, la disyuncin y
la negacin. Python ofrece soporte para estas operaciones
con los operadores lgicos.

Operadores
Operadores lgicos
Hay tres operadores lgicos en Python: la y
lgica o conjuncin (and), la o lgica o
disyuncin (or) y el no lgico o negacin (not).

Operadores
Operadores relacionales (de comparacin)

Operadores
Operadores relacionales (de comparacin)
>>> 2 == 3
False
>>> 2 == 2
True

>>> 2.1 == 2.1


True

Operadores
Operadores relacionales (de comparacin)
>>> True == True
True
>>> True == False
False
Es posible combinar operadores de comparacin y operadores
aritmticos
>>> 2 == 1+1
True

Operadores
Operadores relacionales (de comparacin)
Tambin podemos combinar en una misma expresin
operadores lgicos, aritmticos y de comparacin:
>>> (True or (2 == 1 + 2)) == True
True
>>> 2 < 1
False

Operadores
Operadores relacionales (de comparacin)
>>> 5 > 1
True
>>> 5 >= 1
True

>>> 5 > 5
False

Operadores
Operadores relacionales (de comparacin)
>>> 5 >= 5
True
>>> 1 != 0
True
>>> 1 != 1
False
>>> -2 <= 2
True

Operadores

Tabla de precedencia de los operadores en Python

Variables y asignaciones
>>> pi = 3.14159265359
>>> r = 1.298373 _
>>> 2 * pi * r
8.1579181568392176
>>> pi * r ** 2
5.2960103355249037

En la primera lnea hemos creado una variable de nombre pi y


valor 3.14159265359. A continuacin, hemos creado otra
variable, r, y le hemos dado el valor 1.298373.

Variables y asignaciones
El acto de dar valor a una variable se denomina
asignacin.
Al asignar un valor a una variable que no exista,
Python reserva un espacio en la memoria,
almacena el valor en l y crea una asociacin
entre el nombre de la variable y la direccin de
memoria de dicho espacio.

Variables y asignaciones
Podemos almacenar el resultado de calcular el
permetro y el rea en sendas variables:
>>> pi = 3.14159265359
>>> r = 1.298373
>>> perimetro = 2 * pi * r
>>> area = pi * r**2

Variables y asignaciones
As pues, para asignar valor a una variable basta
ejecutar una sentencia como sta:
variable = expresin
Se debe tener cuidado: el orden es importante.
Hacer expresin = variable no es equivalente.

Variables y asignaciones
Una asignacin no es una ecuacin matemtica, sino una
accin consistente en (por este orden):
1. evaluar la expresin a la derecha del smbolo igual (=), y
2. guardar el valor resultante en la variable indicada a la izquierda
del smbolo igual.

Se puede asignar valor a una misma variable cuantas veces se


quiera.

El efecto es que la variable, en cada instante, slo recuerda


el ltimo valor asignado... hasta que se le asigne otro.

Variables y asignaciones
== no es = (comparar no es asignar)
Al aprender a programar, muchas personas confunden el operador de asignacin, =,
con el operador de comparacin, ==. El primero se usa exclusivamente para asignar un
valor a una variable. El segundo, para comparar valores.
Observe la diferente respuesta que obtienes al usar = y == en el entorno interactivo:
>>> a = 10
>>> a
10
>>> a == 1
False

Variables y asignaciones
>>> a
10
>>> a + 2
3
>>> a = 2

>>> a * a _
4

Variables y asignaciones
Una asignacin no es una ecuacin
Las asignaciones no son ecuaciones matemticas,
por mucho que su aspecto nos recuerde a stas.
>>> x = 3
>>> x = x + 1
>>> x
4

Variables y asignaciones
Una asignacin no es una ecuacin
Las asignaciones no son ecuaciones matemticas,
por mucho que su aspecto nos recuerde a stas.
>>> x = 3
>>> x = x + 1
>>> x
4

Variables y asignaciones
Identificadores
El nombre de una variable es su identificador. Hay unas reglas
precisas para construir identificadores.

Si no se siguen, el identificador no es vlido.


Un identificador debe estar formado por letras minsculas,
maysculas, dgitos y/o el carcter de subrayado (_), con una
restriccin: que el primer carcter no sea un dgito.

Variables y asignaciones
Identificadores (cont.)
Hay una norma ms: un identificador no puede coincidir con una
palabra reservada o palabra clave.
Una palabra reservada es una palabra que tiene un significado
predefinido y es necesaria para expresar ciertas construcciones del
lenguaje.
Aqu tienes una lista con las palabras reservadas de Python:
and, assert, break, class, continue, def, del, elif, else, except, exec,
finally, for, from, global, if, import, in, is, lambda, not, or, pass, print,
raise, return, try, while y yield.

Variables y asignaciones
Identificadores (cont.)
Por ejemplo, los siguientes identificadores son
vlidos:
h, x, Z, velocidad, aceleracion, x, fuerza1, masa_ 2,
_a, a_ , prueba_ 123, desviacion_tipica.
Se debe tener presente que Python distingue entre
maysculas y minsculas, as que area, Area y AREA
son tres identificadores vlidos y diferentes.

Variables y asignaciones
Identificadores (cont.)
Cualquier carcter diferente de una letra, un dgito o el
subrayado es invlido en un identificador, incluyendo el
espacio en blanco.

Por ejemplo, edad media (con un espacio en medio) son dos


identificadores (edad y media), no uno.
Cuando un identificador se forma con dos palabras, es
costumbre de muchos programadores usar el subrayado para
separarlas: edad_media; otros programadores utilizan una
letra mayscula para la inicial de la segunda: edadMedia.

Variables y asignaciones
Identificadores (cont.)
Escoja siempre nombres que guarden relacin
con los datos del problema.
Si, por ejemplo, se va a utilizar una variable para
almacenar una distancia, llame a la variable
distancia y evite nombres que no signifiquen
nada; de este modo, los programas sern ms
legibles.

Variables y asignaciones
Identificadores (cont.)
Son vlidos los siguientes identificadores?
a) Identificador
b) Indice\dos
c) Dos palabras
d) __
e) 12horas
f) hora12
g) desviacin
h) ao
i) from
j) var!
k) var
l) import_from

Variables y asignaciones
Asignaciones con operador
Observe que i = i + 1: aplica un incremento unitario al
contenido de la variable i.

Incrementar el valor de una variable en una cantidad


cualquiera es tan frecuente que existe una forma compacta en
Python. El incremento de i puede denotarse as:
>>> i += 1
No puede haber espacio alguno entre el + y el =.

Variables y asignaciones
Asignaciones con operador (cont)
Puedes incrementar una variable con cualquier cantidad,
incluso con una que resulte de evaluar una expresin:
>>> a = 3
>>> b = 2
>>> a += 4 * b
>>> a
11

Variables y asignaciones
Asignaciones con operador (cont)
Todos los operadores aritmticos tienen su
asignacin con operador asociada.

z += 2
z *= 2
z /= 2
z -= 2
z %= 2
z **= 2

Variables y asignaciones
Asignaciones con operador (cont)
Qu resultar de ejecutar las siguientes sentencias?
>>> z = 2
>>> z += 2
>>> z += 2 - 2
>>> z *= 2
>>> z *= 1 + 1
>>> z /= 2
>>> z %= 3
>>> z /= 3 - 1
>>> z -= 2 + 1
>>> z -= 2
>>> z **= 3
>>> z

Variables y asignaciones
Variables no inicializadas
En Python, la primera operacin sobre una variable debe ser la asignacin de
un valor. No se puede usar una variable a la que no se ha asignado
previamente un valor:
>>> a + 2
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name a is not defined
Como puedes ver, se genera una excepcin NameError, es decir, de error de
nombre.
La asignacin de un valor inicial a una variable se denomina inicializacin de
la variable. En Python no es posible usar variables no inicializadas.

Tipo de datos cadena


Python tambin puede manipular otros tipos de
datos aparte de enteros y flotantes, como por
ejemplo cadenas.
Una cadena es una secuencia de caracteres (letras,
nmeros, espacios, marcas de puntuacin, etc.) y
en Python se distingue porque va encerrada entre
comillas simples o dobles.
Por ejemplo, cadena, otro ejemplo, "1, 2 1o 3",
!S!, "...Python" son cadenas.

Tipo de datos cadena


Las cadenas pueden usarse para representar
informacin textual: nombres de personas,
nombres de colores, matrculas de carros.
Las cadenas tambin pueden almacenarse en
variables.
>>> nombre = Pepe
>>> nombre
Pepe

Tipo de datos cadena


Es posible realizar operaciones con cadenas. Por
ejemplo, podemos sumar cadenas aadiendo una
a otra.
>>> a + b _
ab
>>> nombre = Pepe
>>> nombre + Cano
PepeCano

Tipo de datos cadena


>>> nombre + + Cano
Pepe Cano
>>> apellido = Cano

>>> nombre + + apellido


Pepe Cano
Hablando con propiedad, esta operacin no se llama suma,
sino concatenacin. El smbolo utilizado es +, el mismo que se
usa cuando sumamos enteros y/o flotantes.

Tipo de datos cadena


Aunque el smbolo sea el mismo, ten en cuenta que
no es igual sumar nmeros que concatenar
cadenas:

>>> 12 + 12
1212
>>> 12 + 12
24

Tipo de datos cadena


Sumar o concatenar una cadena y un valor
numrico (entero o flotante) produce un error:
>>> 12 + 12
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation

Tipo de datos cadena


Hay un operador de repeticin de cadenas. El smbolo que lo denota es *, el
mismo que se usa para multiplicar enteros y/o flotantes.
El operador de repeticin necesita dos datos: uno de tipo cadena y otro de
tipo entero. El resultado es la concatenacin de la cadena consigo misma
tantas veces como indique el nmero entero:

>>> Hola * 5 _
HolaHolaHolaHolaHola
>>> - * 60 _
------------------------------------------------------------
>>> 60 * - _
------------------------------------------------------------

Tipo de datos cadena


Una cadena no es un identificador
No confundir una cadena con un identificador de
variable y viceversa. No son la misma cosa.
>>> a = 1
>>> a
a
>>> a
1

Otros tipos de datos


Python posee un rico conjunto de tipos de datos.
Ofrece la posibilidad de trabajar con nmeros con un nmero de cifras
arbitrariamente largo: los enteros largos. Un entero largo siempre acaba
con la letra L.
Ejempos: 1L, 2L, 1237645272817635341571828374645L. Los nmeros
enteros promocionan automticamente a enteros largos cuando es necesario.
>>> 2**30
1073741824
>>> 2**31
2147483648L

Otros tipos de datos


Python posee un rico conjunto de tipos de datos.
Ofrece la posibilidad de trabajar con nmeros con un nmero de cifras
arbitrariamente largo: los enteros largos. Un entero largo siempre acaba
con la letra L.
Ejempos: 1L, 2L, 1237645272817635341571828374645L. Los nmeros
enteros promocionan automticamente a enteros largos cuando es necesario.
>>> 2**30
1073741824
>>> 2**31
2147483648L

Otros tipos de datos


Python tambin ofrece la posibilidad de trabajar
con nmeros complejos.
Un nmero complejo puro finaliza siempre con
la letra j, que representa el valor . Un
nmero complejo con parte real se expresa
sumando la parte real a un complejo puro.
Ejemplos: 4j, 1 + 2j, 2.0 + 3j, 1 - 0.354j.

Otros tipos de datos


El concepto de comparacin entre nmeros es familiar entre nmeros.
Python extiende el concepto de comparacin a otros tipos de datos,
como las cadenas.
En el caso de los operadores == y != el significado est claro: dos
cadenas son iguales si son iguales carcter a carcter, y distintas en
caso contrario.
Pero, qu significa que una cadena sea menor que otra? Python
utiliza un criterio de comparacin de cadenas muy natural: el orden
alfabtico. En principio, una cadena es menor que otra si la precede al
disponerlas en un diccionario. Por ejemplo, abajo es menor que
arriba.

Otros tipos de datos


Y cmo se comparan cadenas con caracteres no alfabticos? Es decir, es @@
menor o mayor que abc?
Python utiliza los cdigos ASCII de los caracteres para decidir su orden alfabtico.
Para conocer el valor numrico que corresponde a un carcter, se puede utilizar la
funcin predefinida ord, a la que le has de pasar el carcter en cuestin como
argumento.
>>> ord(a) _
97
La funcin inversa (la que pasa un nmero a su carcter equivalente) es chr.
>>> chr(97) _
a

Otros tipos de datos


La tabla ASCII presenta un problema cuando queremos
ordenar palabras: las letras maysculas tienen un valor
numrico inferior a las letras minsculas (por lo que
Zapata precede a ajo) y las letras acentuadas son
siempre mayores que sus equivalentes sin acentuar
(abanico es menor que baco).
Hay formas de configurar el sistema operativo para que
tenga en cuenta los criterios de ordenacin propios de
cada lengua al efectuar comparaciones, pero esa es otra
historia.

Otros tipos de datos


Ejercicios
Qu resultados se muestran al evaluar estas expresiones?
>>> abalorio < abecedario
>>> abecedario < abecedario
>>> abecedario <= abecedario
>>> Abecedario < abecedario
>>> Abecedario == abecedario
>>> 124 < 13
>>> 124 < 13
>>> a < a

Funciones predefinidas
Python tambin proporciona funciones que podemos utilizar
en las expresiones. Estas funciones se dice que estn
predefinidas.
La funcin abs, por ejemplo, calcula el valor absoluto de un
nmero. Podemos usarla como en estas expresiones:
>>> abs(-3)
3
>>> abs(3)
3

Funciones predefinidas
El nmero sobre el que se aplica la funcin se denomina
argumento. El argumento de la funcin debe ir encerrado
entre parntesis:
>>> abs(0)
0
>>> abs 0
File "<stdin>", line 1
abs 0
^
SyntaxError: invalid syntax

Funciones predefinidas
Veamos algunas funciones predefinidas.
float: conversin a flotante. Si recibe un nmero entero como argumento, devuelve el
mismo nmero convertido en un flotante equivalente.
>>> float(3)
3.0
La funcin float tambin acepta argumentos de tipo cadena. Cuando se le pasa una
cadena, float la convierte en el nmero flotante que sta representa:
>>> float(3.2)
3.2
>>> float(3.2e10)
32000000000.0

Funciones predefinidas
Pero si la cadena no representa un flotante, se
produce un error de tipo ValueError, es decir, error
de valor:
>>> float(un texto) _
Traceback (innermost last):
File "<stdin>", line 1, in ?
ValueError: invalid literal for float(): un texto

Si float recibe un argumento flotante, devuelve el


mismo valor que se suministra como argumento.

Funciones predefinidas
int: conversin a entero. Si recibe un nmero flotante como argumento,
devuelve el entero que se obtiene eliminando la parte fraccionaria.7
>>> int(2.1) _
2
>>> int(-2.9) _
-2
Tambin la funcin int acepta como argumento una cadena:
>>> int(2) _
2
Si int recibe un argumento entero, devuelve el argumento tal cual.

Funciones predefinidas
str: conversin a cadena. Recibe un nmero y devuelve
una representacin de ste como cadena.
>>> str(2.1)
2.1
>>> str(234E47)
2.34e+49

La funcin str tambin puede recibir como argumento


una cadena, pero en ese caso devuelve como resultado la
misma cadena.

Funciones predefinidas
round: redondeo. Puede usarse con uno o dos argumentos. Si se usa con un
slo argumento, redondea el nmero al flotante ms prximo cuya parte
decimal sea nula.
>>> round(2.1) _
2.0
>>> round(2.9) _
3.0
>>> round(-2.9) _
-3.0
>>> round(2) _
2.0
El resultado siempre es de tipo flotante!

Funciones predefinidas
Si round recibe dos argumentos, stos deben ir separados
por una coma y el segundo indica el nmero de decimales
que se desea conservar tras el redondeo.
>>> round(2.1451, 2)
2.15
>>> round(2.1451, 3)
2.145
>>> round(2.1451, 0)
2.0

Funciones predefinidas
Estas funciones (y las que se estudiarn ms adelante)
pueden formar parte de expresiones y sus argumentos
pueden, a su vez, ser expresiones. Observa los siguientes
ejemplos:

>>> abs(-23) % int(7.3)


2
>>> abs(round(-34.2765,1))
34.3
>>> str(float(str(2) * 3 + .123 + 321)
222.123321

Funciones predefinidas
Ejercicios
Calcular con una nica expresin el valor absoluto del redondeo de 3.2. (El
resultado es 3.0.)
Convierta (en una nica expresin) a una cadena el resultado de la divisin
5011/10000 redondeado con 3 decimales.
Qu resulta de evaluar estas expresiones?
>>> str(2.1) + str(1.2) _
>>> int(str(2) + str(3)) _
>>> str(int(12.3 + 0 _
>>> int(2+3) _
>>> str(2 + 3) _
>>> str(int(2.1) + float(3)) _

Funciones definidas en mdulos


El mdulo math
Empezaremos por importar la funcin seno (sin, del ingls
sinus) del mdulo matemtico (math):

>>> from math import sin


Ahora se puede utilizar la funcin en clculos:
>>> sin(0)
0.0

Funciones definidas en mdulos


El mdulo math (cont.)
>>> sin(1)
0.841470984808
El argumento de la funcin seno debe expresarse en
radianes.

Las funciones trigonomtricas residen en el mdulo


matemtico. Por ejemplo, la funcin coseno, en este
momento, es desconocida para Python.

Funciones definidas en mdulos


El mdulo math (cont.)
Antes de usarla, es necesario importarla del mdulo
matemtico:
>>> from math import cos
>>> cos(0)
1.0
En una misma sentencia podemos importar ms de una
funcin. Basta con separar sus nombres con comas:
>>> from math import sin, cos

Funciones definidas en mdulos


El mdulo math (cont.)
Python ofrece un modo de evitar el problema de las coincidencias que puede
darse cuando usamos variables con el mismo nombre de una funcin que
est en un mdulo.
La forma es importar slo el mdulo.
>>> import math
De esta forma, todas las funciones del mdulo math estn disponibles, pero
usando el nombre del mdulo y un punto como prefijo:
>>> import math
>>> print math.sin(0)
0.0

Funciones definidas en mdulos


El mdulo math (cont.)
Algunas de las funciones del mdulo matemtico:

Funciones definidas en mdulos


El mdulo math (cont.)
En el mdulo matemtico se definen, adems, algunas
constantes de inters:

>>> from math import pi, e


>>> pi
3.1415926535897931
>>> e
2.7182818284590451

Funciones definidas en mdulos


El mdulo math (cont.)
Ejercicios
Qu resultados se obtendrn al evaluar las siguientes
expresiones Python
a) int(exp(2 * log(3)))
b) round(4*sin(3 * pi / 2))
c) abs(log10(.01) * sqrt(25))
d) round(3.21123 * log10(1000), 3)

Funciones definidas en mdulos


Otros mdulos de inters
Existe un gran nmero de mdulos, cada uno de ellos
especializado en un campo de aplicacin determinado.

Funciones definidas en mdulos


Otros mdulos de inters
Precisin de los flotantes
Las funciones trigonomtricas deben expresarse en radianes. Como
sabrs, sen() = 0.
>>> from math import sin, pi
>>> sin(pi)
1.2246063538223773e-16
El resultado que proporciona Python no es cero, sino un nmero muy
prximo a cero:
0.00000000000000012246063538223773.

Funciones definidas en mdulos


Otros mdulos de inters (cont.)
Precisin de los flotantes (cont.)
Se ha equivocado Python?

Funciones definidas en mdulos


Otros mdulos de inters (cont.)
Precisin de los flotantes (cont.)
Se ha equivocado Python?
No exactamente. Ya se dijo anteriormente que los nmeros
flotantes tienen una precisin limitada. El nmero est
definido en el mdulo matemtico como 3.1415926535897931,
cuando en realidad posee un nmero infinito de decimales.

Funciones definidas en mdulos


Otros mdulos de inters (cont.)
Precisin de los flotantes (cont.)
Otro mdulo importante: sys (sistema), el mdulo de sistema
(sys es una abreviatura del ingls system).
Este mdulo contiene funciones que acceden al sistema
operativo y constantes dependientes del computador.
Una funcin importante es exit, que aborta inmediatamente la
ejecucin del intrprete (en ingls significa salir).

Funciones definidas en mdulos


Otros mdulos de inters (cont.)
Precisin de los flotantes (cont.)
La variable maxint, tambin definida en sys, contiene el nmero
entero ms grande con el que se puede trabajar, y la variable
version, indica con qu versin de Python estamos trabajando:
>>> from sys import maxint, version
>>> maxint
2147483647
>>> version
2.3 (#1, Aug 2 2003, 09:00:57) \n*GCC 3.3+

Entrada/Salida
Lectura de datos de teclado
Hay una funcin predefinida, raw_input (en ingls significa
entrada en bruto), que hace lo siguiente: detiene la ejecucin
del programa y espera a que el usuario escriba un texto y pulse
la tecla <enter>; en ese momento prosigue la ejecucin y la
funcin devuelve una cadena con el texto que tecle el usuario.
Esta funcin lee la entrada como cadena de caracteres.

Entrada/Salida
Lectura de datos de teclado
Se la entrada es un nmero, se debe transformar la cadena
devuelta por raw_input en un dato de tipo flotante llamando a la
funcin float o si es entera usar int.
A continuacin un ejemplo de su uso.

Entrada/Salida
Lectura de datos de teclado (cont.)
volumen esfera3.py

from math import pi


texto_leido = raw_input()
radio = float(texto_leido)
volumen = 4.0 / 3.0 * pi * radio ** 3
print volumen

Entrada/Salida
Lectura de datos de teclado (cont.)
Esta otra versin es ms breve:
volumen esfera 4.py

from math import pi


radio = float(raw_input())
volumen = 4.0 / 3.0 * pi * radio ** 3
print volumen

Entrada/Salida
Lectura de datos de teclado (cont.)
La funcin raw_input acepta un argumento: una cadena con el mensaje que
debe mostrar.
El programa modificado as:
volumen esfera 5.py

from math import pi


radio = float(raw_input(Entre el radio de la esfera: ))
volumen = 4.0 / 3.0 * pi * radio ** 3
print volumen

Entrada/Salida
Lectura de datos de teclado (cont.)
Ejercicios
Disee un programa que pida el valor del lado de un
cuadrado y muestre el valor de su permetro y el de
su rea.
Disee un programa que pida el valor de los dos
lados de un rectngulo y muestre el valor de su
permetro y el de su rea.

Entrada/Salida
Lectura de datos de teclado (cont.)
Ejercicios (cont.)
Disee un programa que pida el valor de la base y la altura de
un tringulo y muestre el valor de su rea.
Disee un programa que pida el valor de los tres lados de un
tringulo y calcule el valor de su rea y permetro.

Entrada/Salida
Ms sobre la sentencia print
Ejemplo:
from math import pi
print Programa para el clculo del volumen de una esfera.
radio = float(raw_input(Entre el radio: ))
volumen = 4.0 / 3.0 * pi * radio ** 3
print volumen
print Gracias por utilizar este programa

Bibliografa
MARZAL, Andrs; GRACIA, Isabel. Introduccin
a la programacin con Python. Universitat
Jaume I. 2003

Вам также может понравиться