aprender a programar en python

14
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 distintas versiones.  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.

Upload: jcsanchezrb

Post on 18-Feb-2018

264 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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.

Page 2: Aprender a Programar en Python

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.

Page 3: Aprender a Programar en Python

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 

Page 4: Aprender a Programar en Python

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

Page 5: Aprender a Programar en Python

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  

Page 6: Aprender a Programar en Python

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

Page 7: Aprender a Programar en Python

7/23/2019 Aprender a Programar en Python

http://slidepdf.com/reader/full/aprender-a-programar-en-python 7/14

 

7

Page 8: Aprender a Programar en Python

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) ’........*****---*****---........*****---*****---’ 

Page 9: Aprender a Programar en Python

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.

Page 10: Aprender a Programar en Python

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.

Page 11: Aprender a Programar en Python

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

Page 12: Aprender a Programar en Python

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.

Page 13: Aprender a Programar en Python

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.

Page 14: Aprender a Programar en Python

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.