134 lines
3.3 KiB
Python
134 lines
3.3 KiB
Python
"""
|
|
03_funcion.py
|
|
"""
|
|
import countries_data
|
|
|
|
# Ejercicios: Nivel 3
|
|
|
|
# 1. Escribe una función llamada is_prime
|
|
# que compruebe si un número es primo.
|
|
|
|
|
|
def is_prime(num):
|
|
if num <= 1:
|
|
return "No"
|
|
elif num == 2:
|
|
return "Sí"
|
|
elif num % 2 == 0:
|
|
return "No"
|
|
else:
|
|
for i in range(3, int(num**0.5) + 1, 2):
|
|
if num % i == 0:
|
|
return "No"
|
|
return "Sí"
|
|
|
|
|
|
numero_primo = 19
|
|
|
|
print(f"¿El número {numero_primo} es primo? {is_prime(numero_primo)}")
|
|
|
|
# 2. Escribe una función que compruebe
|
|
# si todos los elementos de una lista son únicos.
|
|
|
|
|
|
def are_elements_unique(my_list):
|
|
if len(my_list) == len(set(my_list)):
|
|
return "Sí"
|
|
else:
|
|
return "No"
|
|
|
|
|
|
lista_elementos = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
print(
|
|
f"¿Los elementos de la lista {lista_elementos} son únicos? {are_elements_unique(lista_elementos)}")
|
|
|
|
# 3. Escribe una función que compruebe
|
|
# si todos los elementos de una lista
|
|
# son del mismo tipo de dato.
|
|
|
|
|
|
def are_elements_same_type(my_list):
|
|
first_type = type(my_list[0])
|
|
if not my_list:
|
|
return "Esto no es una lista."
|
|
elif all(isinstance(x, first_type) for x in my_list):
|
|
return "Sí"
|
|
else:
|
|
return "No"
|
|
|
|
|
|
print(
|
|
f"¿Los elementos de la lista {lista_elementos} son del mismo tipo de dato? {are_elements_same_type(lista_elementos)}")
|
|
|
|
# 4. Escribe una función que compruebe
|
|
# si una variable proporcionada
|
|
# es una variable válida en Python.
|
|
|
|
|
|
def is_valid_variable_name(variable_name):
|
|
try:
|
|
exec(f"{variable_name} = None")
|
|
del locals()[variable_name]
|
|
return "Sí"
|
|
except:
|
|
return "No"
|
|
|
|
|
|
print(
|
|
f"¿La variable 'variable_name' es válida? {is_valid_variable_name('variable_name')}")
|
|
|
|
# 5. Ve a la carpeta de datos
|
|
# y accede al archivo countries-data.py.
|
|
# Crea una función llamada
|
|
# most_spoken_languages_in_the_world.
|
|
# Debe devolver las 10 o 20 lenguas
|
|
# más habladas en orden descendente.
|
|
# Crea una función llamada
|
|
# most_populated_countries.
|
|
# Debe devolver los 10 o 20 países
|
|
# más poblados en orden descendente.
|
|
# Suponiendo que los datos están almacenados
|
|
# en una lista llamada "countries_data".
|
|
|
|
|
|
# Función para obtener las lenguas
|
|
# más habladas en el mundo.
|
|
|
|
def most_spoken_languages_in_the_world():
|
|
all_languages = []
|
|
for country in countries_data.countries_data:
|
|
all_languages.extend(country['languages'])
|
|
|
|
language_count = {}
|
|
|
|
for language in all_languages:
|
|
if language in language_count:
|
|
language_count[language] += 1
|
|
else:
|
|
language_count[language] = 1
|
|
|
|
sorted_languages = sorted(language_count.items(),
|
|
key=lambda x: x[1],
|
|
reverse=True)[:10]
|
|
|
|
language_list = [f"{i+1}. {language[0]}" for i,
|
|
language in enumerate(sorted_languages)]
|
|
return "\n".join(language_list)
|
|
|
|
|
|
print(most_spoken_languages_in_the_world())
|
|
|
|
# Función para obtener los países
|
|
# más poblados en el mundo.
|
|
|
|
|
|
def most_populated_countries():
|
|
sorted_countries = sorted(
|
|
countries_data.countries_data, key=lambda x: x['population'], reverse=True)[:10]
|
|
country_list = [f"{i+1}. {country['name']}" for i,
|
|
country in enumerate(sorted_countries)]
|
|
return "\n".join(country_list)
|
|
|
|
|
|
print(most_populated_countries())
|