Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [PYTHON]Esercizio semplice semplice

    Esercizio: scrivi una funzione Confronto che ritorna 1 se x>y, 0 se x==y e -1 se x<y.

    soluzione:


    codice:
    def Confronto(x, y):
         if x > y:
           return 1
         elif x==y:
           return 0
         elif x < y:
             return -1
    Può essere semplificata?

  2. #2

    Re: [PYTHON]Esercizio semplice semplice

    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:


    codice:
    def Confronto(x, y):
         if x > y:
           return 1
         elif x==y:
           return 0
         elif x < y:
             return -1
    Può essere semplificata?
    Puoi sostituire l'ultimo elif con un else secco:
    codice:
    def Confronto(x, y):
        if x > y:
            return 1
        elif x == y:
            return 0
        else:
            return -1
    o puoi utilizzare direttamente il built-in
    codice:
    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".

  3. #3
    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

  4. #4
    non so se si può fare ... ma provare non nuoce

    un bel

    return x > y ? 1 : (x == y ? 0 : -1)
    Daniele, anche se in PYTHON non si può fare è bellissima!
    Grazie

    puoi utilizzare direttamente il built-in
    code:--------------------------------------------------------------------------------cmp--------------------------------------------------------------------------------
    Cosa intendi esattamente? esiste un modo di "auocostruzione" ?

  5. #5
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    La funzione cmp fa esattamente quello che chiedi tu.

    Comunque il costrutto proposto da daniele_dll è perfettamente possibile:

    codice:
    condizione and expr or expr
    
    x > y and 1 or (x < y and -1 or 0)
    Unico problema: se l'espressione subito dopo l'and è falsa, il risultato non sara quello che ci si aspetta.

    Ad esempio:

    codice:
    False and 0 or 3
    darà come risultato 3. Occhio perchè può generare parecchi errori
    Linux user number 403381

    Stop TCPA!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.