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.

No hay comentarios.:

Publicar un comentario