Diganto M. Paul
Diganto M. Paul

Reputation: 61

python-shell on linux system indentation error

I am a newbie in python and using the python shell through a linux system. I enter the python shell by typing "python" at the command line. When i try to execute a for-loop from the python shell, the shell does not allow me to further continue with indentation and sends File "", line 2 error. Please check the code below;

ash-4.1$ python
Python 2.6.6 (r266:84292, May 22 2015, 08:34:51)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-15)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> word=("cheese")
>>> word
'cheese'
>>> for character in word:
... print(character)
  File "<stdin>", line 2
    print(character)
        ^
IndentationError: expected an indented block
>>>

Also the version installed on this linux system is 2.6. Can you please help me how to work through this?

Upvotes: 4

Views: 3737

Answers (4)

Diganto M. Paul
Diganto M. Paul

Reputation: 61

Ohk I got it. preceded the second line by 4 spaces and then gave the statements of the block code. followed the same for the next line and then a blank line at the last. Thanks Anomitra, i got it just now.!!! Cheers.!! I am posting the block code for others who could get confused like me..

>>> c=5
>>> while c != 0:
...(space)(space)(space)(space)print(c)
...(space)(space)(space)(space)c -= 1
...(blank line)
5
4
3
2
1
>>>

Upvotes: 1

macskay
macskay

Reputation: 401

In Python indentation pretty much work like braces in other languages like C++ or Java.

In C++/Java a for-loop would look like:

for(int i = 0; i < 100; i++) {
    System.out.println(i);  // Java
    std::cout << i << std::endl; // C++
}

Be aware, that this is pseudo-code, as it is a mix of Java and C++ Code. The indentations are not needed, since the {} indicate the body of the for-loop. For better readability they are still used.

In Python, however, your only way to tell the intepreter something is within the body of a function or in this case loop would be by indenting the body, such as:

for i in range(100):
    print(i)

This applies also for functions:

C++/Java:

public int square(int x) {
    // body of function
    return x*x;
}

Python:

def square(x):
    return x*x;

Upvotes: 0

Yousaf
Yousaf

Reputation: 29334

You need to indent your loop body

word=("cheese") 
for character in word:
       print(character) 

Upvotes: 2

Anomitra
Anomitra

Reputation: 1161

Indent the second line of the loop by four spaces and then hit Enter. Maintain the same indentation throughout the loop body, and terminate the loop with a blank line.

EDIT: Your code will not work, however, because you're regarding word as a list of characters. Python doesn't work like that.

Upvotes: 0

Related Questions