Skip to content

Commit d9f0e23

Browse files
committed
#20 - Python
1 parent 3e9d191 commit d9f0e23

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
"""
2+
* EJERCICIO:
3+
* Utilizando un mecanismo de peticiones HTTP de tu lenguaje, realiza
4+
* una petición a la web que tú quieras, verifica que dicha petición
5+
* fue exitosa y muestra por consola el contenido de la web.
6+
*
7+
* DIFICULTAD EXTRA (opcional):
8+
* Utilizando la PokéAPI (https://pokeapi.co), crea un programa por
9+
* terminal al que le puedas solicitar información de un Pokémon concreto
10+
* utilizando su nombre o número.
11+
* - Muestra el nombre, id, peso, altura y tipo(s) del Pokémon
12+
* - Muestra el nombre de su cadena de evoluciones
13+
* - Muestra los juegos en los que aparece
14+
* - Controla posibles errores
15+
"""
16+
17+
import requests
18+
19+
response_one = requests.get(
20+
"https://dummyapi.io/data/v1/user/",
21+
headers= {
22+
"app-id": "62b0433d2dfd91d4bf56c584"
23+
}
24+
)
25+
26+
if response_one.status_code == 200:
27+
data = response_one.json()
28+
result = data["data"][0]
29+
print(result)
30+
else:
31+
print("La solicitud no fue extisosa. Codigo de estado:", response_one.status_code)
32+
33+
34+
############ -------------------------------- EXTRA ----------------------------------- ##############################
35+
36+
def info_pokemon(id_or_name):
37+
response = requests.get(f"https://pokeapi.co/api/v2/pokemon/{id_or_name}")
38+
39+
if response.status_code == 200:
40+
data = response.json()
41+
42+
name = data["name"]
43+
id = data["id"]
44+
weight = data["weight"]
45+
height = data["height"]
46+
pokemon_type = [tipo["type"]["name"].capitalize() for tipo in data["types"]]
47+
48+
# Obtener información sobre la cadena de evolución
49+
species_url = data["species"]["url"]
50+
species_response = requests.get(species_url)
51+
if species_response.status_code == 200:
52+
species_data = species_response.json()
53+
evolution_url = species_data.get("evolution_chain", {}).get("url")
54+
if evolution_url:
55+
evolution_response = requests.get(evolution_url)
56+
if evolution_response.status_code == 200:
57+
evolution_data = evolution_response.json()
58+
evolution_chain = [evolution_data.get("chain", {}).get("species", {}).get("name", "").capitalize()]
59+
while evolution_data.get("chain", {}).get("evolves_to"):
60+
evolution_data = evolution_data["chain"]["evolves_to"][0]
61+
evolution_chain.append(evolution_data.get("species", {}).get("name", "").capitalize())
62+
else:
63+
evolution_chain = ["No se encontro informacion de evolucion"]
64+
else:
65+
evolution_chain = ["No se encontro URL de cadena de evolucion"]
66+
else:
67+
evolution_chain = ["No se encontro informacion de la especie"]
68+
69+
# Obtener los nombres de los juegos en los que aparece el Pokemon
70+
game_names = [game["version"]["name"].replace("-", " ").capitalize() for game in data["game_indices"]]
71+
72+
print(f"Nombre del Pokemon: {name.capitalize()}")
73+
print(f"ID del Pokemon: {id}")
74+
print(f"Peso: {weight}")
75+
print(f"Altura: {height}")
76+
print(f"Tipo de Pokemon: {pokemon_type}")
77+
print(f"Cadena de evolucion: {', '.join(evolution_chain)}")
78+
print(f"Juegos en los que aparece: {', '.join(game_names)}")
79+
80+
else:
81+
print("La solicitud no fue exitosa. Codigo de estado:", response.status_code)
82+
83+
while True:
84+
informacion = input("Ingrese el nombre o ID del Pokemon o 'salir' para salir: ").lower()
85+
if informacion == "salir":
86+
break
87+
else:
88+
info_pokemon(informacion)
89+
print()
90+

0 commit comments

Comments
 (0)