Esercizio: scrivi una funzione Confronto che ritorna 1 se x>y, 0 se x==y e -1 se x<y.
soluzione:
Può essere semplificata?codice:def Confronto(x, y): if x > y: return 1 elif x==y: return 0 elif x < y: return -1
Esercizio: scrivi una funzione Confronto che ritorna 1 se x>y, 0 se x==y e -1 se x<y.
soluzione:
Può essere semplificata?codice:def Confronto(x, y): if x > y: return 1 elif x==y: return 0 elif x < y: return -1
Puoi sostituire l'ultimo elif con un else secco:Originariamente inviato da petremic73
Esercizio: scrivi una funzione Confronto che ritorna 1 se x>y, 0 se x==y e -1 se x<y.
soluzione:
Può essere semplificata?codice:def Confronto(x, y): if x > y: return 1 elif x==y: return 0 elif x < y: return -1
o puoi utilizzare direttamente il built-incodice:def Confronto(x, y): if x > y: return 1 elif x == y: return 0 else: return -1codice:cmp![]()
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".
non so se si può fare ... ma provare non nuoce
un bel
return x > y ? 1 : (x == y ? 0 : -1)
non so se python supporta gli operatori unari (se non erro si chiamano cosi) però fare la prova non nuoce![]()
VM su SSD da 5$! https://www.digitalocean.com/?refcode=f6925c7f0ddb
Daniele, anche se in PYTHON non si può fare è bellissima!non so se si può fare ... ma provare non nuoce
un bel
return x > y ? 1 : (x == y ? 0 : -1)![]()
Grazie
Cosa intendi esattamente? esiste un modo di "auocostruzione"puoi utilizzare direttamente il built-in
code:--------------------------------------------------------------------------------cmp--------------------------------------------------------------------------------?
La funzione cmp fa esattamente quello che chiedi tu.
Comunque il costrutto proposto da daniele_dll è perfettamente possibile:
Unico problema: se l'espressione subito dopo l'and è falsa, il risultato non sara quello che ci si aspetta.codice:condizione and expr or expr x > y and 1 or (x < y and -1 or 0)
Ad esempio:
darà come risultato 3. Occhio perchè può generare parecchi erroricodice:False and 0 or 3