Page 1 of 5 12345 LastLast
Results 1 to 15 of 69

Thread: Python If Annidati

  1. #1
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default Python If Annidati

    Sarò scemo ma non capisco perchè non riesco a scrivere in Python una cosa che in C è semplicissima, cioè questo:
    Code:
    int a=2;
    int b=3;
    if (a==2){
    if (b==4){
    cout << "B vale 4" << endl;
    }
    cout << "Prova Prova";
    }


  2. #2
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    non devi tabbare un sacco?

  3. #3
    Master Chief Petty Officer Rise-the-Sky's Avatar
    Join Date
    Sep 2004
    Posts
    2.485

    Default

    Lo sai vero che python usa(va ...sono fermo a 2 anni fa ma presumo non sia cambiata questa caratteristica) le indentazioni e non le graffe per dividere i blocchi di codice?

    Se scrivi tutto senza indentare le condizionate non funzioneranno.
    spamm is life.

  4. #4
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    si lo so infatti quello è codice c++ ......

    Quote Originally Posted by Hador View Post
    non devi tabbare un sacco?
    Che vuol dire?


  5. #5
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    tabbare = indentarte

    per il resto dovrebbe essere così:

    if a == 2:
    if b == 4:
    print "B vale 4"
    else:
    print "Prova Prova"

    dovrebbe essere una cosa del genere
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  6. #6
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Io voglio che quando termina il codice dell if b torni a eseguire il codice restante di if a


  7. #7
    Ensign Cifra's Avatar
    Join Date
    Jul 2004
    Location
    Torino
    Posts
    3.812

    Default

    ma mettilo prima della if=b

  8. #8
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Molte volte mi capita di dover fare cose simili...quindi chiedevo


  9. #9
    Master Chief Petty Officer Bers's Avatar
    Join Date
    Jul 2005
    Location
    Verona
    Posts
    2.085

    Default

    in python invece delle parentesi usi i tab... cose con la stessa indentazione fanno parte delle stesse parentesi per capirci
    [url=http://narutofantasyheart.forumcommunity.net/?t=9346526&st=0]

  10. #10
    Lieutenant Junior Grade Eltarion's Avatar
    Join Date
    Dec 2004
    Location
    Venaria
    Posts
    4.085

    Default

    Quote Originally Posted by Hardcore View Post
    Io voglio che quando termina il codice dell if b torni a eseguire il codice restante di if a
    si avevo capito l'esigenza. il codice che ti ho postato fa esattamente quello che dici.
    Realm Of Trollers
    while ( ! ( succeed = try() ) );
    Spoiler

  11. #11
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Secondo me no.
    Entra nell if b, e quando esce non esegue quello nell'else, ma lo salta.
    Faccio esempio del programma
    Code:
    nome=raw_input('Inserisci il nome :')
    età=input=('Inserisci la tua età :')
    if (len(nome)>0):
    print "Nome Inserito :",nome
    if (età > 20) print "Hey hai più di 20 anni"
    print "Caro %s di %d anni il programma è terminato" % (nome,età)
    Allora mostro i due casi per essere chiaro

    Caso 1:
    Nome=Pippo
    Età 18
    Output a Console:

    Code:
     Nome Inserito : Pippo
    Caro Pippo di 18 anni il programa è terminato
    Caso 2:
    Nome: Topolino
    Età: 35

    Code:
    Nome Inserito: Topolino
    Hey hai piu di 20 anni
    Caro Topolino di 20 anni il programma è terminato


  12. #12
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    Code:
    a = 2
    b = 3
    
    if a == 2 and b ==3:
        print 'a vale 2 e b vale 3'
    else:
        print 'nulla'
    @hardcore: è consigliabile usare raw_input in qualsiasi caso indipendentemente dal tipo (stringa o intero)
    Code:
    nome=str(raw_input('nome: '))
    eta=int(raw_input('eta: '))
    Last edited by Mez; 11th November 2011 at 13:37.

  13. #13
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Non ho capito il primo codice che hai messo.


  14. #14
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    Quote Originally Posted by Hardcore View Post
    Non ho capito il primo codice che hai messo.
    si scusa ho scazzato con le variabili, pardon

  15. #15
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Ok, però non fa quello che penso io, l'idea è

    A Vale 2? SI

    Entro nel blocco

    <eseguo del codice per tutti i casi in cui a vale 2>

    Dentro a questo blocco caso particolare <b vale 3?> Si eseguo anche questo particolare codice
    Esco da b
    continuo a eseguire del codice dell if A


    Quello scritto da te se a o b valgono quello esegue tutto quel codice, non un codice limitato solo ad b=3 nel caso a =2.
    Ovviamente potrei fare

    if a==2 and b==3 : <blocco A>+<blocco B>
    ma poi avrei anche un
    if a==2 and b!=3: <blocco A>

    cioè del codice scritto piu volte che mi sembra una cosa un pò inutile. Oh magari sta cosa in python non si può fare e basta


Page 1 of 5 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 93.40 Kb. compressed to 78.40 Kb. by saving 15.00 Kb. (16.06%)]