Sintassi di base e utilizzo
La sintassi delle funzioni disponibile nel modulo operatore è piuttosto semplice. Chiama una funzione specifica che restituisce un risultato dopo aver valutato gli argomenti forniti. Di seguito è riportato un esempio che mostra calcoli matematici eseguiti utilizzando varie funzioni disponibili nel modulo operatore.
operatore di importazioneLa prima istruzione importa il modulo operatore. Vengono chiamate varie funzioni disponibili nel modulo dell'operatore come "Aggiungi", "sub", "Mul" e "TrueDiv" e vengono forniti due numeri in modo che le operazioni matematiche possano essere eseguite su di essi. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
11Il codice sopra è equivalente alle seguenti affermazioni in Python:
aggiunta = 5 + 6Nel primo campione di codice, invece di utilizzare segni o simboli dell'operatore, si chiama funzioni per fare gli stessi calcoli. Il modulo operatore include molte altre funzioni di utilità. Di seguito è un esempio che fa confronti tra due numeri.
operatore di importazioneNel campione di codice sopra, varie funzioni come "EQ", "LT", "Le", "NE", "GT" e "GE" sono chiamati a determinare l'uguaglianza o la disuguaglianza di due numeri forniti come argomenti a queste funzioni. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
FalsoQuesto campione di codice è equivalente alle seguenti dichiarazioni:
uguale = 5 == 6Elenco di funzioni utili disponibili nel modulo operatore
Di seguito è riportata una tabella che mostra alcune delle funzioni utili disponibili nel modulo operatore e le loro dichiarazioni equivalenti. Questo tavolo è stato tratto dalla documentazione ufficiale di Python per il modulo dell'operatore.
Tipo di funzionamento / calcolo | Funzione richiamabile | Sintassi equivalente |
---|---|---|
Aggiunta | Aggiungi (a, b) | a + b |
Concatenazione | Concat (SEQ1, SEQ2) | SEQ1 + SEQ2 |
Test di contenimento | contiene (seq, obj) | OBJ in seq |
Divisione | TrueDiv (A, B) | a / b |
Divisione | floordiv (a, b) | a // b |
Bitwise e | e_ (a, b) | a & b |
Bitwise esclusivo o | xor (a, b) | a ^ b |
Inversione bitwise | invertire (a) | ~ a |
Bitwise o | OR_ (a, b) | a | B |
Esponenziale | Pow (A, B) | a ** b |
Identità | is_ (a, b) | a è b |
Identità | is_not (a, b) | a non è b |
Assegnazione indicizzata | SetItem (OBJ, K, V) | obj [k] = v |
Eliminazione indicizzata | DELITEM (OBJ, K) | Del Obj [K] |
Indicizzazione | getItem (OBJ, K) | OBJ [k] |
Tasto maiuscolo di sinistra | lshift (a, b) | UN < |
Modulo | mod (a, b) | A % b |
Moltiplicazione | MUL (A, B) | a * b |
Moltiplicazione matrice | matmul (a, b) | a @ b |
Negazione (aritmetica) | neg (a) | - UN |
Negazione (logico) | not_ (a) | non a |
Positivo | pos (a) | + UN |
Shift destro | rshift (a, b) | a >> b |
Assegnazione della fetta | setitem (seq, slice (i, j), valori) | seq [i: j] = valori |
Eliminazione della fetta | DELITEM (seq, slice (i, j)) | Del Seq [i: J] |
Affettare | getItem (seq, slice (i, j)) | seq [i: j] |
Formattazione delle stringhe | Mod (S, OBJ) | s % obj |
Sottrazione | sub (a, b) | a - b |
Test della verità | Verità (OBJ) | obj |
Ordinamento | LT (A, B) | UN |
Ordinamento | le (a, b) | UN <= b |
Uguaglianza | Eq (a, b) | a == b |
Differenza | ne (a, b) | UN != b |
Ordinamento | ge (a, b) | a> = b |
Ordinamento | GT (A, B) | a> b |
Puoi fare riferimento a questa tabella per trovare una funzione operatore appropriata adatta ai requisiti di programmazione.
Funzioni dell'operatore Inplace
Il modulo operatore include anche un insieme limitato di funzioni in grado di eseguire calcoli "sul posto". Questo viene fatto modificando l'oggetto stesso passandolo come argomento a una funzione dell'operatore. Tali nomi delle funzioni sono prefissi con il carattere "i". Ad esempio, per modificare un oggetto sul posto e aggiungere qualcosa ad esso, dovrai utilizzare la funzione "IADD" disponibile nel modulo operatore. Queste funzioni sono particolarmente utili per oggetti mutabili come i dizionari e gli elenchi di Python. Di seguito è riportato un esempio di codice:
operatore di importazioneQui la funzione "IADD" è stata utilizzata per concatenare due oggetti di tipo elenco in Python. L'elenco che verrà modificato sul posto viene fornito come primo argomento, seguito dall'elenco da unire. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
[1, 2, 3, 4, 5, 6, 7, 8]L'elenco completo delle funzioni sul posto disponibile nel modulo operatore è disponibile qui.
Utilizzo della funzione Itemgetter
È possibile utilizzare la funzione "itemgetter" disponibile nel modulo operatore per scegliere gli elementi da un elenco. Di seguito è riportato un esempio di base:
operatore di importazioneIl metodo Itemgetter ottiene un elemento dal suo indice ed è particolarmente utile per raccogliere più elementi in una sola go. La seconda dichiarazione mostra l'utilizzo della funzione Itemgetter in cui gli indici di due elementi sono forniti come argomenti. La funzione Itemgetter restituisce un oggetto richiamabile, che viene quindi chiamato fornendolo un elenco di Python come argomento. Il risultato finale della seconda e terza affermazione è lo stesso. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
('avanti Cristo')Le chiamate multiple incatenate alla funzione Itemgetter possono anche essere scritte come segue:
operatore di importazioneLa funzione Itemgetter può anche essere utilizzata come chiave quando si ordina un elenco nidificato contenente altri elenchi o tuple. Ecco un esempio:
operatore di importazioneL'argomento "chiave" nella funzione di ordinamento prende un oggetto richiamabile. Questo oggetto richiamabile viene eseguito su ciascun elemento dell'elenco prima di fare eventuali confronti per gli scopi di ordinamento. Fornendo la funzione Itemgetter Callable come chiave, si sta dicendo alla funzione di ordinamento per raccogliere un elemento nell'indice "1" da ciascun elenco nidificato e utilizzarlo per gli scopi di confronto. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
[['c', 1], ['a', 2], ['b', 4], ['d', 5]]Conclusione
Il modulo dell'operatore non porta nulla di nuovo sulla tabella, in quanto utilizza i simboli dell'operatore sotto per eseguire i calcoli. Potresti benissimo scrivere semplici istruzioni usando i simboli dell'operatore. Tuttavia, sono utili negli scenari in cui si desidera eseguire calcoli a livello di programmazione richiamando le funzioni, passare funzioni richiamabili come argomenti e sostituire le dichiarazioni Lambda con qualcosa di più semplice.