2010-12-14 12 views
5

Poiché non esiste un operatore goto in Python, quale tecnica può essere invece utilizzata?Equivalente a GOTO in condizioni, Python

Condizione Se è vero, passare al thread 1, se è falso, passare al thread 2 Nel thread facciamo qualcosa di piccolo e successivamente passiamo al thread 2 dove si svolgono tutte le altre azioni.

+0

Si prega di cercare prima di chiedere – dheerosaur

+1

non si può andare attraverso i thread – Andrey

+0

La tua domanda ha bisogno di un _once over_, puoi fornire un po 'di più? – kevpie

risposta

5

Al meglio della mia conoscenza non è presente (per fortuna), ma si dovrebbe controllare questo link

Il "goto" modulo è stato un pesce d'aprile, pubblicato il 1 ° aprile 2004. Sì, funziona, ma è comunque uno scherzo. Si prega di non usarlo nel codice reale!

+3

Non tentarlo nella programmazione Dark Side di Python :-) Fortunatamente, è scritto sulla pagina, che era solo uno scherzo di April Fool. –

6
def thread_1(): 
    # Do thread_1 type stuff here. 

def thread_2(): 
    # Do thread_2 type stuff here. 

if condition: 
    thread_1() 

# If condition was false, just run thread_2(). 
# If it was true then thread_1() will return to this point. 
thread_2() 

Edit: sto assumendo che da "filo" si intende un pezzo di codice (altrimenti noto come una subroutine o di una funzione). Se stai parlando di thread come nell'esecuzione parallela, avrai bisogno di maggiori dettagli nella domanda.

+0

Sì, intendevo un pezzo di codice. È possibile inserire tutte queste funzioni in un'iterazione "per"? – Maks

+0

@ Mac: Sì, certo. Puoi mettere quasi tutto in un ciclo for. –

2

Python è progettato per supportare pratiche di codifica e GOTO non è uno di questi. Potrebbe portare a una logica di programma illeggibile, se non utilizzata correttamente.

Suggerisco di apprendere il codice del programma in un modo Python, non attenersi alle abitudini (talvolta cattive) di altri linguaggi di programmazione. Vedi la documentazione di Python, i veri programmi Python maturi e impara.

14

Poiché non esiste un operatore goto in Python, quale tecnica può essere utilizzata al suo posto?

Costruire il codice in modo logico e semantico.

if condition: 
    perform_some_action() 

perform_other_actions() 
0
def thread1(): 
    #write your thread 1 code here 

    print("entered no is 1") 

def thread2(): 
    #write your thread 2 code here 
    print("Number is greater or less then one.") 

def main(): 
    a=input() 
    if a==1: 
    thread1() 
    elif a<=1 or a>=1: 
    thread2() 
    #you can use recursion here in case if you want to use agin and again 
    #if you want to print serveral time you can use looping. 
    for i in range(4): 
     main() 
    #if you want to run goto forever and ever and ever then remove loop in 
    #this code. 

#this code will enable you the equivalent of goto statement. 

Questo è quello che uso ogni volta in Python 3.x.