Progra Avanzada Guia13 Labo 91g
Progra Avanzada Guia13 Labo 91g
Progra Avanzada Guia13 Labo 91g
LABORATORIO 91G
ESCOBEDO MEDINA LUIS
COD: 1723225394
PARTE 1:
FUNCIONES EN PYTHON
1. Escribir un función suma () y una función multip() que sumen y multipliquen todos lod números de una
lista. Por ejemplo: suma([ 1 2 3 4]) debería devolver 10 y multip ([1 2 3 4]) debería devolver 24
def suma(lista):
s=0
for i in (lista):
s=s+i
return(s)
print(suma([1,2,3,4]))
def multip(lista):
p=1
for i in (lista):
p=p*i
return(p)
print(multip([1,2,3,4]))
2. Definir una función inversa() que calcule la inversión de una cadena Por ejemplo, la cadena "estoy
probando" debería devolver la cadena odnaborp yotse
CÓDIGO EN PYTHON:
EJECUCION O PRUEBA EN
CONSOLA:
def inversa(palabra):
print(inversa(""))
3. Definir una función espalindromo que reconoce palíndromos (es decir, palabras que tienen el mismo
aspecto escritas invertidas), ejemplo espalindromo (" tendría que devolver True.
CÓDIGO EN PYTHON:
def espalindromo(palabra):
print(espalindromo(""))
4. Definir una función superposición que tome dos listas y devuelva True si tienen al menos 1 miembro en
común o devuelva False de lo contrario Escribir la función usando el bucle for anidado
print(generarcaracteres(5,"c"))
PARTE 2:
CLASES EN PYTHON:
1. Diseñar una clase agenda, la cual debe almacenar para cada contacto el nombre, el teléfono y el email
Además, deberá mostrar un menú con las siguientes opciones
• Añadir contacto
• Lista de contactos
• Buscar contacto
• Editar contacto
• Cerrar agenda
CÓDIGO EN PYTHON:
class Agenda:
def __init__(self):
self.contactos = []
def menu(self):
print()
menu = [
['Agenda Personal'],
['1. Añadir Contacto', "anadir"],
['2. Lista de contactos'],
['3. Buscar contacto'],
['4. Editar contacto'],
['5. Cerrar agenda']
]
for x in range(6):
print(menu[x][0])
self.menu()
def anadir(self):
print("---------------------")
print("Añadir nuevo contacto")
print("---------------------")
nom = input("Introduzca el nombre: ")
telf = int(input("Introduzca el teléfono: "))
email = input("Introduzca el email: ")
self.contactos.append({'nombre': nom, 'telf': telf, 'email': email})
def lista(self):
print("------------------")
print("Lista de contactos")
print("------------------")
if len(self.contactos) == 0:
print("No hay ningún contacto en la agenda")
else:
for x in range(len(self.contactos)):
print(self.contactos[x]['nombre'])
def buscar(self):
print("---------------------")
print("Buscador de contactos")
print("---------------------")
nom = input("Introduzca el nombre del contacto: ")
for x in range(len(self.contactos)):
if nom == self.contactos[x]['nombre']:
print("Datos del contacto")
print("Nombre: ", self.contactos[x]['nombre'])
print("Teléfono: ", self.contactos[x]['telf'])
print("E-mail: ", self.contactos[x]['email'])
return x
def editar(self):
print("---------------")
print("Editar contacto")
print("---------------")
data = self.buscar()
condition = False
while condition == False:
print("Selecciona que quieres editar: ")
print("1. Nombre")
print("2. Teléfono")
print("3. E-mail")
print("4. Volver")
option = int(input("Introduzca la opción deseada: "))
if option == 1:
nom = input("Introduzca el nuevo nombre: ")
self.contactos[data]['nombre'] = nom
elif option == 2:
telf = input("Introduzca el nuevo teléfono: ")
self.contactos[data]['telf'] = telf
elif option == 3:
email = input("Introduzca el nuevo email: ")
self.contactos[data]['email'] = email
elif option == 4:
condition = True # bloque principal agenda = Agenda() agenda.menu()
CÓDIGO EN PYTHON:
class Banco:
def __init__(self):
self.cliente1 = Cliente("Ivan")
self.cliente2 = Cliente("Marcos")
self.cliente3 = Cliente("Juan")
CÓDIGO EN PYTHON:
'''
Parámetros:
Devuelve:
'''
result[i] = functions[f](i)
return result
def calculator():
'''
Función que aplica una función seleccionada por el usuario (seno, coseno, tangente, exponencial o logarítmo)
a la lista de enteros desde 1 hasta n.
Imprime por pantalla una tabla con la secuencia de enteros y el resultado de aplicarles la función introducida.
Parámetros:
f: Es una cadena con la función a aplicar (sin, cos, tan, exp o log).
n: Es un entero positivo.
'''
f = input('Introduce la función a aplicar (sin, cos, tan, exp, log): ')
apply_function(f, n).items():
calculator()
PROBLEMAS DIRIGIDOS
Ejercicio 1 Escribir una clase en Python que convierta un número entero a número romano
CÓDIGO EN PYTHON:
def conversion_entero_romano(entero):
numeros = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
numerales = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV',
'I'] numeral = '' i = 0 while entero > 0: for _ in range(entero //
numeros[i]):
numeral += numerales[i]
entero -= numeros[i]
i += 1 return
numeral
print(conversion_entero_romano(125))
Ejercicio 2 Escribir una clase en Python que convierta un número romano en un número entero
CÓDIGO EN PYTHON:
def romano_a_entero(romano):
romanos = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
entero = 0 for i in range(len(romano)): if i > 0 and
romanos[romano[i]] > romanos[romano[i - 1]]: entero +=
romanos[romano[i]] - 2 * romanos[romano[i - 1]] else:
entero += romanos[romano[i]] return
entero
print(romano_a_entero('MCL'))
Ejercicio 3 Escribir una clase en Python para encontrar la validez de una cadena de paréntesis, '(', ')', '{', '}', '[' '].
Los paréntesis deben aparecer en el orden correcto, por ejemplo "()" y "()[]{}" son válidos, pero "[)", "({[)]" y
"{{{" son inválidos.
CÓDIGO EN PYTHON:
CÓDIGO EN PYTHON:
def subconjuntos(numeros):
return subconjuntos_recursivo([], sorted(numeros)) def subconjuntos_recursivo(actual, conjunto): if
conjunto: return subconjuntos_recursivo(actual, conjunto[1:]) + subconjuntos_recursivo(actual +
[conjunto[0]], conjunto[1:]) return [actual] numeros = [4, 5, 6]
resultado = subconjuntos(numeros)
print(len(resultado)) print(resultado)
Ejercicio 5 Escribir una clase en Python que encuentre un par de elementos (índice de los números) de una matriz
dada cuya suma es igual a un número de destino específico. Entrada: números= [10,20,10,40,50,60,70],
objetivo=50 Salida: 3, 4
CÓDIGO EN PYTHON:
CÓDIGO EN PYTHON:
CÓDIGO EN PYTHON:
class Potenciacion: def
__init__(self,base,exponente):
res=self.base**self.exponente
return res
r=Potenciacion(2,3) print('la
Ejercicio 8 Escribir una clase en Python que revierta una cadena de palabras Entrada: "Mi Diario Python" Salida:
"Python Diario Mi"
CÓDIGO EN PYTHON:
def invertir_cadena(cadena):
return cadena[::-1]
CÓDIGO EN PYTHON:
class Rectangulo:
"""
"""
self.b = b
self.h = h def
area(self):
Ejercicio 10 Escribir una clase en Python llamada rectángulo que contenga una base y una altura, y que contenga
un método que devuelva el área del rectángulo
CÓDIGO EN PYTHON:
.
class IOString():
def __init__(self):
self.str1 = ""
def get_String(self):
self.str1 = input()
def print_String(self):
print(self.str1.upper())
str1.print_String()
Ejercicio 11 Escribir una clase en Python llamada circulo que contenga un radio, con un método que devuelva el
área y otro que devuelva el perímetro del círculo.
CÓDIGO EN PYTHON:
class Circulo:
def __init__(self,radio,pi):
self.radio = radio
self.pi = pi
def area(self):
res=self.radio**2*self.pi
perimetro(self):
res= 2*(self.radio*self.pi)