Reputation: 61
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
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
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
Reputation: 29334
You need to indent your loop body
word=("cheese")
for character in word:
print(character)
Upvotes: 2
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