En este Blog encontrarás ejercicios prácticos de algunos lenguajes de programación y telecomunicaciones
miércoles, 25 de octubre de 2023
domingo, 1 de octubre de 2023
EJERCICIOS VARIOS DE PYTHON
Saludos a todos, les traigo unos ejercicio variados para practicar, pueden aplicar para exámenes.
Consta en la creación de 7 funciones, espero les sirva:
1. Obtener un número binario: recibe como argumento un número entero mayor ó igual a cero y lo devuelve en su representación binaria. Debe recibir y devolver un valor de tipo entero.
1
2
3
4
5
6 | def numeroBinario(numero):
if (isinstance(numero, int)) and numero>-1:
binario=format(numero,'b')
return int(binario)
else:
return None
|
2. Dividir y multiplicar números en listas: La función recibe como argumento una lista de números enteros, y debe retornar una lista con los siguientes parámetros:
- Los números que sean positivos y pares se deben dividir por 2, y el resultado expresado como entero (sin decimales, no redondeando, debe tomar sólo la parte entera de la división por 2).
- Los números negativos multiplicados por 2.
- Los que no cumplan los criterios anteriores deben quedar igual al valor original.
- Ordenar los números de mayor a menor.
Ej: dividirMultiplicar([2,4,1,-3]): debe retornar: [2, 1, 1, -6]
1
2
3
4
5
6
7
8
9
10
11 | def dividirMultiplicar(lista):
lista_entero = []
for i in lista:
if (i >= 0 and i%2 == 0):
lista_entero.append(i//2)
elif i<0:
lista_entero.append(i*2)
else:
lista_entero.append(i)
lista_entero.sort(reverse=True)
return lista_entero
|
3. Ordenar palabras: La función recibe como argumento una secuencia de palabras unidas por guiones, y debe retornar las mismas palabras, unidas por guiones, pero en orden alfabético. Si el argumento que se le pasa no es un string o no contiene guiones, debe retornar nulo.
EJ: ordenarPalabras('saco-libro-casa') debe retornar 'casa-libro-saco'
EJ: ordenarPalabras('Hola') debe retornar nulo
Pista: investigar métodos de string
1
2
3
4
5
6
7
8 | def ordenarPalabras(palabras):
if "-" not in palabras:
return None
palabras_separadas = palabras.split("-")
palabras_ordenadas = sorted(palabras_separadas)
resultado = "-".join(palabras_ordenadas)
return resultado
|
4. Triángulo rectángulo: La función debe recibir como argumentos el valor en cm de los lados de un triángulo (a y b son los catetos), y dado estos valores, retornar True si en efecto corresponden a un triángulo rectángulo, o False en caso contrario. Sólo se debe poder pasar valores enteros como argumentos de la función, caso contrario debe retornar nulo.
EJ: trianguloRectangulo(3.5,3.5,2.4), debe retornar nulo
EJ: trianguloRectangulo(3,3,3), debe retornar False
EJ: trianguloRectangulo(3,4,5), debe retornar True
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | def trianguloRectangulo(a,b,c):
if (isinstance(a, int)==True and isinstance(b, int)==True and isinstance(c, int)==True):
if (a>b and a>c): # la hipotenusa es a
hipotenusa = a
cateto1 = b
cateto2 = c
elif (b>a and b>c): #la hipotenusa es b
hipotenusa = b
cateto1 = a
cateto2 = c
elif (c>a and c>b): # la hipotenusa es c
hipotenusa = c
cateto1 = a
cateto2 = b
else:
hipotenusa = a
cateto1 = b
cateto2 = c
if (hipotenusa**2 == cateto1**2 + cateto2**2 ):
return True
else:
return False
return None
|
5. Diccionario: La función recibe como argumento una lista de números enteros, y debe retornar un diccionario con tres claves, "multiplos3", 'cuadrados", "menores_promedio".
Para la clave "multiplos3", el valor debe ser una lista con los múltiplos de 3 de la lista original.
Para la clave "cuadrados", el valor debe ser una lista con los valores de la lista original elevados al cuadrado.
Para la clave "menores_promedio", el valor debe ser una lista con los valores menores al promedio de la lista original.
EJ: crearDiccionario([3,6,7,12]): debe retornar: {'multiplos3': [3, 6, 12], 'cuadrados': [9, 36, 49, 144], 'menores_promedio': [3, 6]}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | def crearDiccionario(lista):
multiplos3=[]
cuadrados=[]
menores_promedio=[]
longitud_lista=len(lista)
suma_lista=sum(lista)
promedio_lista=suma_lista/longitud_lista
for numero in lista:
cuadrados.append(numero**2)
if numero%3==0:
multiplos3.append(numero)
if numero<promedio_lista:
menores_promedio.append(numero)
diccionario ={
'multiplos3':multiplos3,
'cuadrados':cuadrados,
'menores_promedio':menores_promedio
}
return diccionario
|
6. Diccionario adicional: Dado el siguiente diccionario ciudades, la función debe retornar una lista de listas, donde cada elemento de la lista sea una lista con el par ['ciudad', población], pero sólo de las ciudades que comiencen con la letra 'B', y como último elemento de la lista el par ['promedio', promedio de población] con el promedio de población de las ciudades seleccionadas.
ciudades = {
'São Paulo': 21048514,
'Buenos Aires': 14975587,
'Río de Janeiro': 11902701,
'Bogotá': 10777931,
'Lima': 10479899,
'Santiago de Chile': 7112808,
'Belo Horizonte': 6006091,
'Caracas': 5622798,
'Brasília': 4291577
}
Ej: Si se pidiera ciudades que comiencen con la letra 'S', debe devolver: [['São Paulo', 21048514], ['Santiago de Chile', 7112808],['promedio', 14080661.0]]
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | def ciudadesPoblacion(diccionario):
ciudades_B=[]
total_poblacion=0
for ciudad, poblacion in diccionario.items():
if ciudad.startswith('B'):
ciudades_B.append([ciudad,poblacion])
total_poblacion=total_poblacion+poblacion
promedio=total_poblacion/len(ciudades_B)
ciudades_B.append(["promedio",promedio])
return ciudades_B
|
Muchas gracias por la visita.