Skip to content

Commit 472d0e5

Browse files
committed
feat: #20-Python
Reto #20-Python realizado por mrodara
1 parent f121dac commit 472d0e5

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
### PETICIONES HTTP EN PYTHON
2+
3+
# Para realizar peticiones http en python requiere la importación del módulo requests
4+
# Instalar previamente si no la tenemos
5+
# pip install requests
6+
7+
import requests
8+
9+
# Realizamos una petición get:
10+
#url = "https://www.marca.com"
11+
#
12+
##Almacenamos la respuesta
13+
#response = requests.get(url=url)
14+
#
15+
## Si obtenemos un código de estado 200 la comunicación es correcta
16+
#if response.status_code == 200:
17+
# print(f"Encabezados de la respuesta")
18+
# print(response.headers) # Imprimimos los encabezados de la respuesta
19+
#
20+
# print(f"La respuesta a la petición ha sido exitosa")
21+
# print(response.text) # Imprimimos el contenido en formato texto
22+
#else:
23+
# print(f"La respuesta a la petición ha sido fallida")
24+
# print(response.status_code) # Imprimimos el código de estado de la respuesta
25+
26+
27+
### EJERCICIO EXTRA
28+
29+
# Acceso a api pokemon
30+
def get_pokemon_data(name: str = "", id: int = 0):
31+
32+
if name:
33+
url= f"https://pokeapi.co/api/v2/pokemon/{name.lower()}"
34+
else:
35+
url = f"https://pokeapi.co/api/v2/pokemon/{id}"
36+
37+
response = requests.get(url=url)
38+
39+
if response.status_code == 200:
40+
return response.json()
41+
else:
42+
print(f'Estatus code: {response.status_code}')
43+
print({f'error: No se pudo obtener la información del pokemon'})
44+
return None
45+
46+
def get_pokemon_games(name: str = "", id: int = 0):
47+
48+
if name:
49+
url= f"https://pokeapi.co/api/v2/version/{name.lower()}"
50+
else:
51+
url = f"https://pokeapi.co/api/v2/version/{id}"
52+
53+
response = requests.get(url=url)
54+
55+
if response.status_code == 200:
56+
return response.json()
57+
else:
58+
print(f'Estatus code: {response.status_code}')
59+
print({f'error: No se pudo obtener la información del pokemon'})
60+
return None
61+
62+
63+
def get_pokemon_evolution_chain(name: str = "", id: int = 0):
64+
65+
if name:
66+
url= f"https://pokeapi.co/api/v2/evolution-chain/{name.lower()}"
67+
else:
68+
url = f"https://pokeapi.co/api/v2/evolution-chain/{id}"
69+
70+
response = requests.get(url=url)
71+
72+
if response.status_code == 200:
73+
return response.json()
74+
else:
75+
print(f'Estatus code: {response.status_code}')
76+
print({f'error: No se pudo obtener la información del pokemon'})
77+
return None
78+
79+
name = ""
80+
id = 0
81+
82+
print("Obtener datos de Pokemon: ")
83+
option = input("Indica el dato para buscar (n: nombre, i: id): ")
84+
while option[0].lower() not in ['n', 'i']:
85+
print("Error: Debes indicar una de las dos opciones.")
86+
option = input("Indica el dato para buscar (n: nombre, i: id)")
87+
88+
if option[0].lower() == 'n':
89+
name = input("Indica el nombre del Pokemon: ")
90+
else:
91+
id = int(input("Indica el id del Pokemon: "))
92+
93+
data = get_pokemon_data(name=name, id=id)
94+
games = get_pokemon_games(name=name, id=id)
95+
evolution = get_pokemon_evolution_chain(name=name, id=id)
96+
97+
if data:
98+
print(f"Nombre: {data['name']}")
99+
print(f"Id: {data['id']}")
100+
print(f"Altura: {data['height']}" )
101+
print(f"Peso: {data['weight']}" )
102+
print("Tipos:")
103+
for type in data['types']:
104+
print(f"{type['type']['name']}" )
105+
else:
106+
print("No hay información para mostrar...")
107+
108+
if evolution:
109+
print("Evolución:")
110+
print(evolution['chain']['species']['name'])
111+
112+
if games:
113+
print("Versiones:")
114+
for game in games['names']:
115+
if game['language']['name'] == 'es':
116+
print(f"{game['name']}")
117+
else:
118+
print("No hay información para mostrar acerca de las versiones de juegos de este pokemon...")
119+
120+
121+
122+
### FIN EJERCICIO EXTRA
123+
124+
### FIN PETICIONES HTTP EN PYTHON
125+
126+

0 commit comments

Comments
 (0)