Inicio -> Todos los programas -> Python 3.5 -> IDLE (Python 3.5 32-bit)
type(nombreVariable)
La variable se escribe siempre a la izquierda de la igualdad
>>> numero = '45'
>>> numero+1
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
numero+1
TypeError: Can't convert 'int' object to str implicitly
>>> int(numero)+1
46
>>>
>>> print("hola")
hola
>>>
Nombre = input("Dígame su nombre: ")
apellido = input("Dígame su apellido, " + nombre + ": ")
print("Me alegro de conocerte,", nombre, apellido)
"Secuencia de instrucciones para resolver un problema"
Utiliza sentencias
La variable contiene un valor luego de la ejecución
Permite elegir el camino a seguir de acuerdo con una condición
if condición:
aquí van las órdenes que se ejecutan si la condición es cierta
y que pueden ocupar varias líneas
else:
y aquí van las órdenes que se ejecutan si la condición es
falsa y que también pueden ocupar varias líneas
Lo contenido dentro de la condición debe ser de tipo Boolean
numero=int(input("ingrese un numero: "))
if numero%2 == 0:
print("el numero es par")
else:
print("el numero es impar")
Ejemplo: Verificar si un número ingresado es par o impar
numero=int(input("ingrese un numero: "))
if (numero < 0):
numero=int(input("ingrese numero positivo: "))
if (numero%2==1):
print("valor es impar")
else:
print("valor es par")
Ejemplo: Verificar si un número ingresado es par o impar, permitiendo solo números positivos
if condición_1:
bloque 1
elif condición_2:
bloque 2
else:
bloque 3
Es equivalente a:
if condición_1:
bloque 1
else:
if condición_2:
bloque 2
else:
bloque 3
numero=int(input("ingrese un numero: "))
if (numero == 1):
print("Lunes")
elif (numero ==2):
print("Martes")
elif (numero ==3):
print("Miercoles")
...
else:
print("No válido")
Más de una salida posible
Ejemplo: Ingresar número de día del 1 al 7 y responder con el nombre
Ejemplo: No permitir Números negativos
numero=int(input("ingrese un numero: "))
if (numero < 0):
numero=int(input("ingrese numero positivo: "))
...
Sólo verifica una vez!!
while condicion:
cuerpo del bucle
Lo contenido dentro del while debe ser de tipo Boolean
While
x=int(input("ingrese un numero positivo: "))
while (x<0):
print(x,"no es positivo!!")
x=int(input("ingrese un numero positivo: "))
print(x, "si es un numero positivo")
Ej: No permitir el ingreso de números negativos
for
for variable in elemento iterable (lista, cadena, range, etc.):
cuerpo del bucle
Ejemplo: Imprimir la tabla del 2
iteraciones=10
for i in range(iteraciones):
print("2 x",i,"=",2*i)
●Corta la ejecución de un bucle
●Generalmente se incluye dentro de un condicional (decisión)
contador = 0
while (contador < 5):
print ("El contador es :", contador)
contador = contador + 1
if (contador > 3):
break
print ("Fin del programa")
¿Qué mostrará este programa?
●Salta a la siguiente iteración dentro de un bucle
●Generalmente se incluye dentro de un condicional (decisión)
edad = 0
while edad < 18:
edad = edad + 1
if edad % 2 == 0:
continue
print ("Felicidades, tienes " + str(edad))
¿Qué mostrará este programa?
contador = 0
while (contador < 5):
print ("El contador es :", contador)
contador = contador + 1
continue
if (contador > 3):
break
print ("Fin del programa")
¿Qué mostrará este programa?
contador = 0
while (contador < 5):
print ("El contador es :", contador)
contador = contador + 1
break
if (contador > 3):
continue
print ("Fin del programa")
¿Y este otro?
No hace nada. Se puede usar cuando una sentencia es requerida por la sintáxis pero el programa no requiere ninguna acción
while True:
... pass # Espera ocupada hasta una interrupción de teclado (Ctrl+C)
...
Ahora...
A divertirse con 26 ejercicios!!
cadena = input("ingrese una cadena ")
caracter = input("ingrese una letra ")
contador = 0
for letra in cadena:
if letra == caracter:
contador = contador +1
print("la letra",caracter,"aparece",contador,"veces")
cadena = input("ingrese una cadena ")
caracter = input("ingrese una letra ")
print("la letra",caracter,"aparece",cadena.count(caracter),"veces")
count("subcadena" [,posicion_inicio,posicion_fin])
count es una función predefinida en Python que retorna un entero representando la cantidad de apariciones de subcadena dentro de cadena.
Nadaremos... =D
numero1=int(input("ingrese un numero: "))
numero2=int(input("ingrese otro numero: "))
numero1=int(input("ingrese un numero: "))
numero2=int(input("ingrese otro numero: "))
numero3=int(input("ingrese otro numero: "))
numero4=int(input("ingrese otro numero: "))
numero5=int(input("ingrese otro numero: "))
numero1=int(input("ingrese un numero: "))
numero2=int(input("ingrese otro numero: "))
numero3=int(input("ingrese otro numero: "))
numero4=int(input("ingrese otro numero: "))
numero5=int(input("ingrese otro numero: "))
...
...
Ejemplo:
Simpson=['Marge','Homero','Lisa','Bart','Maggie']
¡Son miles!
Y peor aún: No se todos los nombres!!!
Las listas pueden ser numéricas, booleanas, de cadenas de caracteres,etc...
El operador suma (+) necesita que los dos operandos sean listas:
>>> vocales = ["A","E", "I", "O"]
>>> vocales = vocales + ["U"]
['A','E', 'I', 'O', 'U']
Salida:
Imprimir el listado sería tan sencillo como hacer:
>>> vocales = ["A","E", "I", "O","U"]
print(vocales[0])
print(vocales[1])
print(vocales[2])
print(vocales[3])
print(vocales[4])
Recordar: El primer índice es 0!
Pero, ¿Si tuviera 1000 elementos?
El bucle for nos permite solucionar esto de un modo elegante.
>>> vocales = ["A","E", "I", "O","U"]
for indice in vocales:
print(indice)
La variable indice, definida ad hoc en el propio bucle, va a tomar, uno a uno, todos los elementos de la lista vocales, comenzando por ‘A’ y terminando en 'U'.
>>> vocales = []
vocales[0]='A'
vocales[1]='E'
vocales[2]='I'
vocales[3]='O'
vocales[4]='U'
>>> vocales = []
vocales.append("A")
vocales.append("E")
vocales.append("I")
vocales.append("O")
vocales.append("U")
>>> dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"]
>>> dias[1:4] # Se extrae una lista con los valores 1, 2 y 3
Salida:
['Martes', 'Miércoles', 'Jueves']
Se pueden extraer sublistas, utilizando la notación nombreDeLista[inicio:límite]
Ejemplo:
>>> letras = ["A", "B", "C", "D", "E", "F", "G", "H"]
>>> del letras[4] # Elimina la sublista ['E']
print(letras)
Salida:
['A', 'B', 'C', 'D', 'F', 'G', 'H']
La palabra reservada del permite eliminar un elemento o varios elementos a la vez de una lista, e incluso la misma lista.
Ejemplo:
>>> letras = ["A", "B", "C", "D", "E", "F", "G", "H"]
>>> 'A' in letras
Salida:
True
Devuelve un valor lógico: True si el elemento está en la lista, False si el elemento no está en la lista.
Ejemplo:
elemento in lista
simpson=[]
cantidad=int(input("ingrese la cantidad de personajes que reconozcas: "))
for i in range(cantidad):
personaje=input("ingrese el nombre del personaje que reconozca: ")
simpson.append(personaje)
print("Los personajes reconocidos son:", simpson)
ingrese la cantidad de personajes que reconozcas: 5
ingrese el nombre del personaje que reconozca: smithers
ingrese el nombre del personaje que reconozca: Bob Patiño
ingrese el nombre del personaje que reconozca: carl
ingrese el nombre del personaje que reconozca: Sr. Burns
ingrese el nombre del personaje que reconozca: Ned Flanders
Los personajes reconocidos son: ['smithers', 'Bob Patiño', 'carl', 'Sr. Burns',
'Ned Flanders']
>>>
Las tuplas se representan escribiendo los elementos entre paréntesis y separados por comas.
Declaración:
Ejemplo:
bouvier=('Patty','Selma')
bouvier='Patty','Selma'
print(bouvier[1])
Salida:
Selma
bouvier='Patty','Selma'
bouvier.count('Selma')
Salida:
1
bouvier.index('Patty')
Salida:
0
Declaración:
Ejemplo:
mini_padron = { '34586': 'Brest Federico', '38507': 'Boglioli Alan',
'37463': 'Casas Malena', '33157': 'Medina Coca Luis' }
print (mini_padron['34586'])
Salida:
Brest Federico
padron=dict()
Recorrer diccionario:
34586 Brest Federico
33157 Medina Coca Luis
37463 Casas Malena
38507 Boglioli Alan
for k, v in mini_padron.items():
print(k, v)
Eliminar elemento:
del mini_padron['34586']
Salida:
{'37463': 'Casas Malena', '38507': 'Boglioli Alan', '33157': 'Medina Coca Luis'}
# Declaración de un diccionario
diccionario = dict()
# Devuelve el numero de elementos que tiene el diccionario
len(dict)
# Compara el número de elementos distintos que tienen los dos
cmp (dict1,dict2)
# Devuelve una lista con las claves del diccionario
dict.keys()
# Devuelve una lista con los valores del diccionario
dict.values()
# Devuelve el valor del elemento con clave key. Sino devuelve default
dict.get(key, default=None)
# Inserta un elemento en el diccionario clave:valor. Si la clave existe no lo inserta
dict.setdefault(key, default=None)
# Insertamos un elemento en el diccionario con su clave:valor
dict['key'] = 'value'
# Eliminamos el elemento del diccionario con clave key
dict.pop('key',None)
# Devuleve la copia de un diccionario dict2 = dict.copy()
dict.copy()
# Elimina todos los elementos de un diccionario
dict.clear()
# Crea un nuevo diccionario poniendo como claves las que hay en la lista
#y los valores por defecto si se les pasa
dict.fromkeys(list, defaultValue)
# Devuelve true si existe la clave. Sino devuelve false
dict.has_key(key)
# devuelve un lista de tuplas formadas por los pares clave:valor
dict.items()
# Añade los elementos de un diccionario a otro
dict.update(dict2)
Un conjunto es una colección no ordenada y sin elementos repetidos. Los usos básicos de éstos incluyen verificación de pertenencia y eliminación de entradas duplicadas. Los conjuntos también soportan operaciones matemáticas como la unión, intersección, diferencia, y diferencia simétrica
Las llaves o la función set() pueden usarse para crear conjuntos
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a # letras únicas en a
{a', 'r', 'b', 'c', 'd'}
>>> a - b # letras en a pero no en b
{'r', 'b', 'd'}
>>> a | b # letras en a o en b
{'a', 'c', 'b', 'd', 'm', 'l', 'r', 'z'}
>>> a & b # letras en a y en b
{'a', 'c'}
>>> a ^ b # letras en a o b pero no en ambos
{'b', 'd', 'm', 'l', 'r', 'z'}
Ejemplo:
palabra=input("ingrese una palabra: ")
contador=0
for i in range(len(palabra)):
if palabra[i]=="A" or palabra[i]=="a":
contador=contador+1
print("la letra A aparece:",contador,"veces")
palabra=input("ingrese una palabra: ")
contador=0
for i in range(len(palabra)):
if palabra[i]=="A" or palabra[i]=="a":
contador=contador+1
print("la letra A aparece:",contador,"veces")
palabra2=input("ingrese otra palabra: ")
contador2=0
for i in range(len(palabra)):
if palabra[i]=="A" or palabra[i]=="a":
contador=contador+1
print("la letra A aparece:",contador2,"veces")
palabra=input("ingrese una palabra: ")
contador=0
for i in range(len(palabra)):
if palabra[i]=="A" or palabra[i]=="a":
contador=contador+1
print("la letra A aparece:",contador,"veces")
palabra2=input("ingrese otra palabra: ")
contador2=0
for i in range(len(palabra)):
if palabra[i]=="A" or palabra[i]=="a":
contador=contador+1
print("la letra A aparece:",contador2,"veces")
def contarA(palabra):
contador=0
for i in range(len(palabra)):
if palabra[i]=="A" or palabra[i]=="a":
contador=contador+1
return contador
palabra=input("ingrese una palabra: ")
cantidad=contarA(palabra)
print("la letra A aparece:",cantidad,"veces")
def NOMBRE( LISTA DE PARAMETROS ):
SENTENCIAS
Las variables: “variable1” y “variable2” tienen el mismo valor (2) pero, son variables diferentes, es decir, cualquier alteración de la variable dentro de la función no se verán fuera de esta, se utiliza normalmente al retornar el valor de la variable y ya se puede usar fuera de esta.
Función(variable2)
-inicio función-
procedimiento...
-fin función-
entero variable1 = 2
LlamadaAfunción(variable1)
def jugar(intento=1):
respuesta = input("¿De qué color es una naranja? ")
if respuesta != "naranja":
if intento < 3:
print ("\nFallaste! Inténtalo de nuevo" )
intento += 1
jugar(intento) # Llamada recursiva
else:
print ("\nPerdiste!" )
else:
print ("\nGanaste!")
print("Bienvenido al juego de la Naranja")
jugar()
Ejemplo:
Últimos 2 TP...
class Padre():
def __init__(self):
self.x = 5;
print("Este es el constructor de la clase padre")
def metodo(self):
print("Ejecutando método de clase padre")
class Hija(Padre):
def metodoHija(self):
print("Método clase hija")
>>> h = Hija()
Este es el constructor de la clase padre
>>> h.metodo()
Ejecutando método desde clase padre
A partir de una clase Persona (que contenga como atributos identificacion, nombre, apellido) podemos construir la clase AlumnoUTN que extiende a Persona y agrega como atributo el legajo.
Para indicar el nombre de la clase padre, se la pone entre paréntesis a continuación del nombre de la clase
class Persona(object):
"Clase que representa una persona."
def __init__(self, identificacion, nombre, apellido):
"Constructor de Persona"
self.identificacion = identificacion
self.nombre = nombre
self.apellido = apellido
def __str__(self):
return " %s: %s, %s" %
(str(self.identificacion), self.apellido, self.nombre)
class AlumnoUTN(Persona):
"Clase que representa a un alumno de UTN."
def __init__(self, identificacion, nombre, apellido, padron):
"Constructor de AlumnoUTN"
# llamamos al constructor de Persona
Persona.__init__(self, identificacion, nombre, apellido)
# agregamos el nuevo atributo
self.legajo= legajo
class Pelo():
color = ""
textura = ""
class Ojo():
forma = ""
color = ""
tamanio = ""
Los métodos son funciones, solo que técnicamente se denominan métodos, y representan acciones propias que puede realizar el objeto (y no otro):
Ejemplo:
class Objeto():
color = "verde"
tamanio = "grande"
aspecto = "feo"
antenas = Antena()
ojos = Ojo()
pelos = Pelo()
def flotar(self):
pass
class NombreClase:
'Texto para documentar la clase (opcional)'
varclase1 = "variable de clase1"
def nombremetodo1(self, var1):
self.var1 = var1
def nombremetodo2(self):
self.var1 += 1
alumno1 = Alumno("Maria", 8)
alumno2 = Alumno("Carlos", 6)
Ejemplo:
print(alumno1.nombre)
print(alumno1.nota)
Para modificar la variable de un objeto se utiliza la misma notación para referirse al atributo y después del signo igual (=) se indica la nueva asignación:
Ejemplo:
alumno1.nombre = "Carmela"
Para llamar a un método se indica el nombre de objeto, seguido de un punto y el nombre del método. Si se requieren varios argumentos se pasan escribiéndolos entre paréntesis, separados por comas (","). Si no es necesario pasar argumentos se añaden los paréntesis vacíos "()" al nombre del método.
Ejemplo:
print(alumno1.mostrarNombreNota()) # ('Carmen', 8)
print(alumno2.mostrarNombreNota()) # ('Carlos', 6)
objeto = MiClase()
print objeto.propiedad
objeto.otra_propiedad = "Nuevo valor"
variable = objeto.metodo()
print variable
print objeto.otro_metodo()
Ejemplo:
del alumno1.nombre
class Alumno:
'Clase para alumnos'
numalumnos = 0
sumanotas = 0
def __init__(self, nombre, nota):
self.nombre = nombre
self.nota = nota
Alumno.numalumnos += 1
Alumno.sumanotas += nota
def mostrarNombreNota(self):
return(self.nombre, self.nota)
def mostrarNumAlumnos(self):
return(Alumno.numalumnos)
def mostrarSumaNotas(self):
return(Alumno.sumanotas)
def mostrarNotaMedia(self):
if Alumno.numalumnos > 0:
return(Alumno.sumanotas/Alumno.numalumnos)
else:
return("Sin alumnos")