Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Machine Learning by (33.1k points)
I am self-teaching myself python 2.7. I have some experience in using BATCH, which has a GOTO statement. How do I do that in python? For example, suppose I want to jump from line 5 to line 18.

I realize there have been previous questions regarding this topic, but I have not found them sufficiently informative or, are a too high level in python for my current understanding

1 Answer

0 votes
by (33.1k points)
edited by

Goto is universally reviled in computer science and programming as they lead to unstructured code.

Python supports structured programming which controls flow using if/then/else, loop and subroutines.

The key to thinking in a structured way is to understand how and why you are branching on code.

For example, let's pretend Python had a goto and corresponding label statement shudder. Look at the following code. In it, if a number is greater than or equal to 0 we print if it

number = input()

if number < 0: goto negative

if number % 2 == 0:

   print "even"

else:

   print "odd"

goto end

label: negative

print "negative"

label: end

print "all done"

If we want to know when a piece of code is executed, we need to carefully traceback in the program and examine how a label was arrived at - which is something that can't really be done.

For example, we can rewrite the above as:

number = input()

goto check

label: negative

print "negative"

goto end

label: check

if number < 0: goto negative

if number % 2 == 0:

   print "even"

else:

   print "odd"

goto end

label: end

print "all done"

Here, there are two possible ways to arrive at the "end", and we can't know which one was chosen. As programs get large this kind of problem gets worse and results in spaghetti code

In comparison, below is how you would write this program in Python:

number = input()

if number >= 0:

   if number % 2 == 0:

       print "even"

   else:

       print "odd"

else:

   print "negative"

print "all done"

I can look at a particular line of code, and know under what conditions it is met by tracing back the tree of if/then/else blocks it is in. For example, I know that the line print "odd" will be run when a ((number >= 0) == True) and ((number % 2 == 0) == False).

Hope this answer helps you!

If you want to learn Python proogramming language for Data Science then you can watch this complete video tutorial:

Browse Categories

...