Corso Avanzato di Sviluppo Python
Capitolo
>
Livello
Moduli Matematici
Introduzione al Modulo di Matematica
Obiettivo
Esamina i titoli di proprietà e i confini della fattoria, verifica e analizza i numeri utilizzando le funzioni del modulo Math.
Nell'ufficio situato proprio all'estremità dell'edificio principale c'è un archivio di vecchi progetti dell'edificio e di titoli di proprietà. Ci sono piani per espandere la fattoria verso est, ma è importante mettere in ordine tutta la documentazione prima di decidere di esaminare eventuali progetti di costruzione. Questo verrà fatto utilizzando il modulo math di python.
import math
Come il modulo statistics, anche il modulo math possiede una collezione di funzioni matematiche che possiamo usare per estendere la libreria incorporata di python:
-
math.isnan(): Verifica se il valore inserito non è un numero -
math.isinf(): Verifica se il valore inserito è un numero infinito -
math.isfinite(): Verifica se il valore inserito è finito -
math.prod(): Moltiplica tutti gli argomenti forniti -
math.pow(): Prende due argomenti e restituisce il valore del primo argomento elevato alla potenza del secondo. -
math.trunc(): Tronca l'argomento fornito, rimuovendo la parte decimale da un numero in virgola mobile e trasformandolo in un numero intero. (Non arrotonda, semplicemente rimuove) -
math.copysign(): Prende due argomenti, copia il segno (-,+) dal secondo argomento e lo applica al primo. -
math.factorial(): Prende un argomento e calcola il prodotto del numero contando a ritroso fino a 1. Ad esempio, se il valore è5esegue:5x4x3x2x1e produce un risultato.
Utilizzeremo queste funzioni per esaminare e registrare alcuni dati al fine di preparare i progetti di sviluppo. Esistono tre costanti lista contenenti gli schemi della fattoria chiamate: red_schematics, green_schematics, blue_schematics. Questi schemi contengono valori non numerici e inutilizzabili; usa le funzioni matematiche per identificare gli elementi e individuare i dati utilizzabili in modo da poterli registrare.
Prima, dirigiti verso il segno X scuro sul tappeto rosso e usa un ciclo per esaminare gli elementi della costante lista red_schematics al fine di identificare gli elementi utilizzabili.
for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)
Il ciclo esaminerà tutti gli elementi della lista; la funzione math.isnan() identificherà le voci non numeriche, mentre math.isinf() identificherà i valori infiniti che non possono essere utilizzati per la raccolta dei dati. Crea una nuova lista denominata red_values e utilizza una list comprehension per rimuovere gli elementi indesiderati, impiegando math.isfinite() come filtro, in questo modo: red_values = [x for x in red_schematics if math.isfinite(float(x))].
Successivamente, somma tutti i numeri insieme utilizzando la funzione math.prod() per moltiplicare tutti gli elementi della lista, in questo modo: red_values = math.prod(red_values).
Esegui lo stesso processo di filtraggio sui segni X scuri posizionati sopra i tappeti verde e blu, utilizzando le costanti lista green_schematics e blue_schematics e consolidando gli elementi in liste denominate green_values e blue_values. Dirigiti verso il segno X dorato, rivolgi lo sguardo alla scrivania e usa la funzione write() predefinita nell'editor per registrare i dati degli schemi utilizzabili. Una volta raccolto tutto, dirigiti verso il segno X chiaro e usa la funzione open() per accedere alla stanza successiva.
Una volta nella stanza successiva, ci sono un paio di scrivanie con alcuni titoli di proprietà e coordinate. È una buona idea registrare alcuni dati prima di passare al controllo delle nuove aggiunte alla fattoria nell'area successiva oltre il ponte. Dirigiti verso il segno X chiaro davanti alla cassa con le mappe situata accanto alla prima scrivania, usa la funzione read() per acquisire i dati indice relativi ai titoli di proprietà.
Dirigiti verso il segno X scuro sul tappeto viola, crea una variabile denominata purple_data e usa la funzione math.pow() per elevare i dati acquisiti al fine di ottenere informazioni sulle coordinate. Eleva il dato indice alla potenza di 3, in questo modo: purple_data = math.pow( -index data- , 3 ), assicurandoti di aggiungere il dato indice letto in precedenza. Utilizza math.trunc() per rimuovere la parte decimale dalla variabile, in questo modo: purple_data = math.trunc(purple_data). Una volta fatto, al segno X, usa la funzione write() predefinita nell'editor con purple_data per registrare i dati memorizzati nella variabile.
Per finalizzare, dirigiti verso il segno X chiaro davanti all'armadio dei documenti accanto alla scrivania superiore. Usa la funzione read() per acquisire nuovamente i dati indice; questi dati devono essere estratti per rivelare ulteriori informazioni sulle coordinate della terra. Crea una variabile denominata white_data per memorizzare il valore dei dati trovati nel file e una variabile denominata sign per memorizzare il numero del segno trovato nel file. Dirigiti verso il segno X scuro sul tappeto bianco e usa la funzione math.copysign() utilizzando le due variabili appena create come argomenti, assegnando il valore a white_data, in questo modo: white_data = math.copysign(white_data,sign).
Una volta fatto, utilizza white_data con math.factorial() per calcolare il fattoriale, convertendo white_data in un intero e usandolo con la funzione, in questo modo: white_data = math.factorial(int(white_data)). Usa la funzione write() predefinita per registrare white_data, in modo da completare il livello.