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"; }
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"; }
non devi tabbare un sacco?![]()
hdr.
bnet profile
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.
tabbare = indentarte
per il resto dovrebbe essere così:
if a == 2:
if b == 4:else:print "B vale 4"
print "Prova Prova"
dovrebbe essere una cosa del genere
Realm Of Trollers
while ( ! ( succeed = try() ) );
Spoiler
Io voglio che quando termina il codice dell if b torni a eseguire il codice restante di if a
Molte volte mi capita di dover fare cose simili...quindi chiedevo
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]
Secondo me no.
Entra nell if b, e quando esce non esegue quello nell'else, ma lo salta.
Faccio esempio del programma
Allora mostro i due casi per essere chiaroCode: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à)
Caso 1:
Nome=Pippo
Età 18
Output a Console:
Caso 2:Code:Nome Inserito : Pippo Caro Pippo di 18 anni il programa è terminato
Nome: Topolino
Età: 35
Code:Nome Inserito: Topolino Hey hai piu di 20 anni Caro Topolino di 20 anni il programma è terminato
@hardcore: è consigliabile usare raw_input in qualsiasi caso indipendentemente dal tipo (stringa o intero)Code:a = 2 b = 3 if a == 2 and b ==3: print 'a vale 2 e b vale 3' else: print 'nulla'
Code:nome=str(raw_input('nome: ')) eta=int(raw_input('eta: '))
Last edited by Mez; 11th November 2011 at 13:37.
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