Download - Aprender a Programar en Python
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 1/14
1
Una variable es un espacio del sistema de almacenaje al que se le asigna un identificador o
nombre simbólico donde se puede almacenar un valor
mi_valor = 5
Un identificador o variable debe estar formado por letras minúsculas, mayúsculas, dígitos y/o el
carácter de subrayado (_), con una restricción: que el primer carácter no sea un dígito; y además
no puede coincidir con una palabra reservada o palabra clave.
El tipo de datos es lo que define lo que se va a almacenar en dicha variable. Los tipos de datos
pueden ser:
Numéricos, y dentro de este están los enteros y en coma flotante, es decir real con
decimales.
Cadenas de caracteres. Lógicos o también llamados booleanos.
mi_entero = 5
mi_decimal = 3.1416 #observar que el separador decimal es el punto y no la coma
mi_cadena = “En un lugar de la Mancha de cuyo nombre no quiero acordarme” #observar que
la cadena debe estar encerrada entre comillas dobles o simples
mi_booleano = True
Como indica su nombre, a una variable se le puede volver a asignar un nuevo valor el número
de veces que se considere necesario.
mi_entero = 3
Hay que tener claro el sistema de tipo de cada lenguaje. El chequeo de la tipificación de los datos
puede ocurrir tanto en la compilación como en la ejecución. Los tipados existentes son:
Tipado estático. La comprobación de tipificación se realiza durante la compilación, y no
durante la ejecución. Un ejemplo de este tipo de lenguajes sería C en sus distintasversiones.
Tipado dinámico. La comprobación de tipificación se realiza durante su ejecución en vez
de durante la compilación. Un ejemplo de este tipo de lenguajes sería Python.
Si un lenguaje impone fuertemente las reglas de tipificación (es decir que sólo permite las
conversiones de tipo de dato automáticas que no hagan perder información), se le denomina
como fuertemente tipado; si no, débilmente tipado.
El tipado estático busca errores en los tipos de datos durante la compilación y esto debería
incrementar la fiabilidad de los programas procesados.
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 2/14
2
Otro apartado a tener claro es el concepto de lenguaje compilado versus lenguaje interpretado.
Lenguaje compilado es aquel que una vez escrito el programa, éste debe ser traducido
a partir de su código fuente por medio de un compilador a un archivo ejecutable para
una determinada plataforma. Los programas compilados tienden a ser más rápidos que
los traducidos en tiempo de ejecución, aunque cada vez el proceso de traducción en losinterpretados están empezando a reducir esta brecha.
Lenguaje interpretado es aquel en el que las instrucciones se traducen o interpretan una
a una en tiempo de ejecución a un lenguaje intermedio o lenguaje máquina o a través
de una máquina virtual, y solía ser más lentos que los lenguajes compilados.
Los comentarios en programación mejoran en gran medida la legibilidad de nuestro código y
sirven como instrucciones o explicaciones del funcionamiento de una parte del programa.
Existen 2 tipos de comentarios, los que ocupan una sola línea y los que pueden ocupar varias
líneas
# Así se pone un comentario en Python en una sola línea
“”” Y este otro comentario es válido
aunque ocupe varias líneas.
Sólo acaba el comentario cuando se cierra el mismo “””
El concepto de sentencia es el de una línea de código en un lenguaje de programación.
Los operadores aritméticos toman valores numéricos (literales o variables) como operandos y
devuelve un solo valor numérico. Los operadores aritméticos normales son:
1.
Suma (+)
2.
Resta (-)
3.
Multiplicación (*)
4. División (/)
5. Exponenciación (**)
6. Módulo (%)
7. División baja - Devuelve el entero de la división (//)
8. Operadores unarios (+ y -)
variable = 9
resultado = variable / 3
print(resultado)
Recordar la precedencia que va de izquierda a derecha dentro de los operadores aritméticos es:
exponenciación, operadores unarios, multiplicación/división/módulo y suma/resta; y que lamisma puede ser alterada por medio de paréntesis y corchetes.
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 3/14
3
. . . . . . . . . . . . . . . . . . . . E J E R C I C I O S . . . . . . . . . . . . . . . .
I.
¿Qué resultados se obtendrán al evaluar las siguientes expresiones Python? Dibuja el árbolsintáctico de cada una de ellas, calcula a mano el valor resultante de cada expresión y
comprueba, con la ayuda del ordenador, si tu resultado es correcto.
a) 2 + 3 + 1 + 2 b) 2 + 3 * 1 + 2 c) (2 + 3) * 1 + 2
d) (2 + 3) * (1 + 2) e) +---6 f) -+-+6
II. Traduce las siguientes expresiones matemáticas a Python y evalúalas. Trata de utilizar el
menor número de paréntesis 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)
(Nota: El resultado de evaluar cada expresión es: a) 11; b) 2; c) 32; d) 64; e) 9; f) −9.)
Árbol sintáctico
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 4/14
4
Los operadores de asignación son utilizados para asignar un valor a una variable. Estos
operadores son:
= c = a + b (se asigna el valor de a + b en c)
+= c += a es lo mismo que c = c + a
-=c -= a
es lo mismo que c = c - a*= c *= a es lo mismo que c = c * a
/= c /= a es lo mismo que c = c / a
%= c %= a es lo mismo que c = c % a
**= c **= a es lo mismo que c = c ** a
//= c //= a es lo mismo que c = c // a
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 5/14
5
Los operadores de comparación se utilizan para comparar dos variables o expresiones y obtener
un resultado Verdadero o Falso (True o False). Estos operadores son:
== evalúa como verdadero si 2 variables son iguales.
!= evalúa como verdadero si 2 variables son diferentes.
> verdadero si el operador a la izquierda es mayor que el de la derecha. < verdadero si el operador a la izquierda es menor que el de la derecha.
>= verdadero si el operador a la izquierda es mayor o igual al de la derecha.
<= verdadero si el operador a la izquierda es menor o igual al de la derecha.
2 == 2 # el resultado es True
variable1 != variable2 # el resultado depende del contenido de cada variable
3 + 1 <= 1 + 2 # el resultado es False
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 6/14
6
Los operadores lógicos u operadores booleanos combinan dos o más condiciones simples y
devuelven un valor Verdadero o Falso (True o False). Existen en Python tres operadores lógicos:
1. “and” (y). Da como resultado el valor True si y sólo si son ciertos sus dos operandos.
2. “or”(o). Proporciona True si cualquiera de sus operandos es True, y False sólo cuando
ambos operandos son False.
3. “not” (no). Es unario, y proporciona el valor True si su operando es False y viceversa.
3 < 4 and 2 + 1 != 5 # el resultado es True ya que ambas condiciones simples son Verdaderas
not True # el resultado es False
. . . . . . . . . . . . . . . . . . . . E J E R C I C I O S . . . . . . . . . . . . . . . .
I. ¿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
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 7/14
7
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 8/14
8
El tipo de datos cadena pueden usarse para representar información textual: nombres de
personas, nombres de colores, matrículas de coche... Las cadenas también pueden almacenarse
en variables.
nombre = ‘Pablo’
nombre += ‘ Sánchez’ # ahora la variable contiene Pablo Sánchez
No es lo mismo concatenar cadenas que sumar números.
Hay un operador de repetición de cadenas. El símbolo que lo denota es *, el mismo que es usado
para multiplicar enteros y/o flotantes. El operador de repetición necesita dos datos: uno de tipo
cadena y otro de tipo entero. El resultado es la concatenación de la cadena consigo misma tantas
veces como indique el número entero.
. . . . . . . . . . . . . . . . . . . . E J E R C I C I O S . . . . . . . . . . . . . . . .
I. Evalúa estas expresiones y sentencias en el orden indicado:
a) = ’b’
b) + ’b’
c) + ’a’
d) * 2 + ’b’ * 3 e) 2 * ( + ’b’)
II. ¿Qué resultados se obtendrán al evaluar las siguientes expresiones y asignaciones Python?
Calcula primero a mano el valor resultante de cada expresión y comprueba, con la ayuda del
ordenador, si tu resultado es correcto.
a) ’a’ * 3 + ’/*’ * 5 + 2 * ’abc’ + ’+’
b) palindromo = ’abcba’
(4 * ’<’ + palindromo + ’>’ * 4) * 2
c) subcadena = ’=’ + ’-’ * 3 + ’=’
’10’ * 5 + 4 * subcadena
d) 2 * ’12’ + ’.’ + ’3’ * 3 + ’e-’ + 4 * ’76’
III. Identifica regularidades en las siguientes cadenas, y escribe expresiones que, partiendo de
subcadenas más cortas y utilizando los operadores de concatenación y repetición,
produzcan las cadenas que se muestran. Introduce variables para formar las expresiones
cuando lo consideres oportuno.
a) ’%%%%%./././<-><->’
b) ’(@)(@)(@)======(@)(@)(@)======’
c) ’asdfasdfasdf=-=-=-=-=-=-=-??????asdfasdf’
d) ’........*****---*****---........*****---*****---’
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 9/14
9
El concepto de comparación entre números es algo que resulta familiar porque se ha estudiado
antes en matemáticas. En el caso de las cadenas los operadores == y != el significado está claro:
dos cadenas son iguales si son iguales carácter a carácter, y distintas en caso contrario. Pero en
el caso del resto de comparaciones (mayor, menor,…) se utiliza un criterio de comparación de
cadenas muy natural: el orden alfabético; y cuando contienen caracteres no alfabéticos se utiliza
los códigos ASCII de los caracteres para decidir su orden alfabético.
Para conocer el valor numérico que corresponde a un carácter, se utiliza la función predefinida
ord, a la que se le ha de pasar el carácter en cuestión como argumento.
La función inversa (la que pasa un número a su carácter equivalente) es chr.
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 10/14
10
Existen una serie de funciones predefinidas que funciones que podemos utilizar en las
expresiones. El argumento o argumentos de una función debe(n) ir encerrado(s) entre
paréntesis:
La función abs, por ejemplo, calcula el valor absoluto de un número.
La función float: conversión a flotante. Cuando se le pasa una cadena, float la convierte en el
número flotante que ésta representa.
La función int: conversión a entero. Si recibe un número flotante como argumento, devuelve el
entero que se obtiene eliminando la parte fraccionaria. También acepta como argumento una
cadena.
La función str: conversión a cadena. Recibe un número y devuelve una representación de éste
como cadena. Puede recibir como argumento una cadena, pero en ese caso devuelve como
resultado la misma cadena.
La función round: redondeo. Puede usarse con uno o dos argumentos. Si se usa con un solo
argumento, redondea el número al flotante más próximo cuya parte decimal sea nula. Si recibe
dos argumentos, el segundo indica el número de decimales que deseamos conservar tras elredondeo.
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 11/14
11
. . . . . . . . . . . . . . . . . . . . E J E R C I C I O S . . . . . . . . . . . . . . . .
I. Calcula con una única expresión el valor absoluto del redondeo de −32. (El resultado es 3.0.)
II. Convierte (en una única expresión) a una cadena el resultado de la división
5011/10000 redondeado con 3 decimales.
III.
¿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)) ↱
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 12/14
12
Funciones definidas en módulos, Python también proporciona funciones trigonométricas,
logaritmos, etc., pero no están directamente disponibles cuando iniciamos una sesión.
Antes de utilizarlas hemos de indicar a Python que vamos a hacerlo. Para ello, importamos cada
función de un módulo.
Por ejemplo se puede empezar por importar la función seno (sin, del inglés ˂˂sinus˃˃) del
módulo matemático (math), para después poder utilizar la función.
Inicialmente Python no ˂˂sabe˃˃ calcular la función seno. Cuando importamos una función,
Python ˂˂aprende˃˃ su definición y nos permite utilizarla.
Las definiciones de funciones residen en módulos. Las funciones trigonométricas residen en elmódulo matemático.
Si utilizamos un asterisco, se importan todos los elementos de un módulo; aunque es
recomendable el importar elemento a elemento, ya que el programa gana en legibilidad, pues
sabemos de dónde proviene cada identificador y evita la posibilidad de que se haya definido
anteriormente una variable que coincida con el nombre del módulo.
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 13/14
13
Los datos de ciertos tipos permiten invocar unas funciones especiales: los denominados
˂˂métodos˃˃.
Un método es una función de un objeto específico. Una función es un fragmento de código que
resuelve un problema particular o que desempeña una tarea específica.
Las cadenas permiten invocar métodos sobre ellas.
Un método permite, por ejemplo, obtener una versión en minúsculas de la cadena sobre la que
se invoca.
La sintaxis es diferente de la propia de una llamada a función convencional. Lo primero que
aparece es el propio objeto sobre el que se efectúa la llamada.
El nombre del método se separa del objeto con un punto. Los paréntesis de apertura y cierre al
final son obligatorios.
Existe otro método, upper (˂˂uppercase˃˃, en inglés, significa ˂ ˂mayúsculas˃˃), que pasa todos
los caracteres a mayúsculas.
Y otro, title que pasa la inicial de cada palabra a mayúsculas.
Algunos métodos aceptan parámetros. El método replace, por ejemplo, recibe como argumento
dos cadenas: un patrón y un reemplazo.
El método busca el patrón en la cadena sobre la que se invoca el método y sustituye todas sus
apariciones por la cadena de reemplazo.
7/23/2019 Aprender a Programar en Python
http://slidepdf.com/reader/full/aprender-a-programar-en-python 14/14
14
La programación estructurada es aquella en la que la estructura de un programa se compone de
3 posibles estructuras lógicas de control:
Secuencial: Sucesión simple de dos o más operaciones.
Condicional: bifurcación condicional de una o más operaciones.
Iterativa: Repetición de una operación mientras se cumple una condición.