-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrivia_api_com_base.py
78 lines (56 loc) · 2.53 KB
/
trivia_api_com_base.py
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import requests
import random
numero_domande = input('Inserire il numero di domande a cui rispondere (max 50): ')
if numero_domande.isdigit():
numero_domande = int(numero_domande)
else:
print("E' necessario indicare un numero la prossima volta.")
quit()
final_url = f'https://the-trivia-api.com/api/questions?limit={numero_domande}®ion=IT'
response = requests.get(final_url)
response_json = response.json()
# print(response_json[0])
risposte_esatte = 0
categorie_indovinate = []
for item in range(numero_domande):
categoria_output = response_json[item]['category']
difficolta_output = response_json[item]['difficulty']
domanda = response_json[item]['question']
risposta_corretta = response_json[item]['correctAnswer']
risposte_sbagliate = response_json[item]['incorrectAnswers']
#creo una lista unica di risposte e la riordino casualmente
risposte_possibili = [risposta_corretta, *risposte_sbagliate]
random.shuffle(risposte_possibili)
print('\nDomanda n°', item + 1)
print('Categoria:', categoria_output)
print('Livello di difficoltà:', difficolta_output)
print('Quiz:', domanda)
# print('Opzioni disponibili:', risposte_possibili, '\n')
# uso la funzione enumerate per avere un oggetto che comprende gli indici relativi alle opzioni possibili
risposte_numerate = enumerate(risposte_possibili, start=1)
lista_risposte_numerate = list(risposte_numerate)
for i in lista_risposte_numerate:
print(i)
scelta_utente = input('seleziona una risposta: ')
# verifico se il numero selzionato è minore o pari a 4
if scelta_utente.isdigit():
if int(scelta_utente) > 4 or int(scelta_utente) < 0:
print('inserito valore non corretto.')
continue
else:
print('non è stato inserito un numero valido.')
continue
scelta_utente_indice = int(scelta_utente) - 1
risposta_utente = lista_risposte_numerate[scelta_utente_indice][1]
# verifico se la risposta è esatta
if risposta_utente == risposta_corretta:
risposte_esatte += 1
categorie_indovinate.append(categoria_output)
print('Risposta corretta!!\n')
input('premere un tasto per continuare...')
else:
print('Risposta sbagliata.\n')
input('premere un tasto per continuare...')
print('Hai totalizzato', risposte_esatte, 'risposte esatte su un totale di', numero_domande, 'domande.')
if len(categorie_indovinate) > 0:
print('Hai indovinato le categorie: ', set(categorie_indovinate))