2010-12-14 54 views
5

Puisqu'il n'y a pas d'opérateur goto en Python, quelle technique peut-on utiliser à la place?Equivalent à GOTO dans les conditions, Python

Condition Si c'est le cas, passez au fil 1, si c'est faux, passez au fil 2 Dans le fil, nous faisons quelque chose de petit et ensuite nous passons au fil 2 où toutes les autres actions ont lieu.

+0

S'il vous plaît chercher avant de demander – dheerosaur

+1

vous ne pouvez pas passer à travers les discussions – Andrey

+0

Votre question a besoin d'un _once over_, pouvez-vous fournir un peu plus? – kevpie

Répondre

5

Au meilleur de ma connaissance, ce n'est pas présent (heureusement), mais vous devriez vérifier link

Le module « goto » a été la blague un poisson d'Avril, publié le 1er Avril 2004. Oui, fonctionne, mais c'est une blague néanmoins. Merci de ne pas l'utiliser en code réel!

+3

Ne le tentez pas à la programmation de Dark Side of Python :-) Heureusement, il est écrit sur la page, que c'était juste une blague d'un poisson d'avril. –

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: Je suppose que par « fil » vous voulez dire un morceau de code (autrement connu comme un sous-programme ou une fonction). Si vous parlez de threads comme en exécution parallèle, vous aurez besoin de plus de détails dans la question.

+0

Oui, je voulais dire morceau de code. Est-il possible de placer toutes ces fonctions dans une itération "pour"? – Maks

+0

@Maks: Oui, bien sûr. Vous pouvez mettre presque n'importe quoi dans une boucle for. –

2

Python est conçu pour prendre en charge bonnes pratiques de codage et GOTO n'en fait pas partie. Cela peut conduire à une logique de programme illisible, si elle n'est pas utilisée correctement.

Je suggère d'apprendre à coder votre programme dans un façon Python, ne vous en tenez pas aux (parfois mauvaises) habitudes d'autres langages de programmation. Voir la documentation Python, les vrais programmes Python matures et apprendre.

14

Puisqu'il n'y a pas d'opérateur goto en Python, quelle technique peut-on utiliser à la place?

Construire votre code de manière logique et sémantique.

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. 

C'est ce que je l'utilise chaque fois en Python 3.x.