[Tutor] elif statement

Dipo Elegbede delegbede at dudupay.com
Wed Aug 11 10:22:39 CEST 2010


You need to check the indentation properly.
In this case, elif has to be on the same indentation level with if. I
should think so.
If you're working straight from the python interactive console, like I
think you're doing, you need to manually do the indentation thing by
yourself.
First, I don't understand why you chose to set x to 3. That is not the
main thing though.
After x = 3, if you press enter, you'd get the python prompt
>>>
Then you type the next statement to have
>>> if x == 0:
What you get after this if statement is either a whitespace or ...,
from my phone, I get a ...
So you manually press the spacebar twice to get an indentation for the
first print statement.
As soon as you press enter again, you get the dots, just type in the
elif statements without pressing the spacebar. Then press enter to
move to a new line where the second print statement would be,and press
the spacebar twice again for indentation.
For the second elif statement, follow the procedure for the first elif
statement.
Go ahead and press enter twice to tell the console you are done, you
shouldn't get an error that way.
You should get something like below:

>>> x=3
>>> if x==0:
...   print x,'is zero'
... elif x//1==1:
...   print x,'is odd'
... elif x//1==0:
...   print x,'is even'
... else:
...   print'what is this'
...

The else statement is optional.
Hope it helps.

On 8/11/10, Adam Bark <adam.jtm30 at gmail.com> wrote:
> On 11/08/10 02:34, Sudarshana Banerjee wrote:
>> Hi: I am trying to teach myself Python, and am stuck at the
>> indentation with the elif statement.
>>
>> This is what I am trying to type (as copied from the textbook):
>>
>> x=3
>> if x==0:
>>     print "x is 0"
>> elif x&1 ==1:
>>     print "x is a odd number"
>> elif x&1==0: -- Line 6
>>     print "x is a even number"
>>
>> If I am combining the if and the print statement, then the elif
>> statement is in the next line, and all is well with the world. If
>> however, I write the print as a separate statement, I am getting a
>> syntax error after I press Enter after keying the first elif statement.
>>
>> >>> x=3
>> >>> if x==0:
>> print x
>> elif x==2:
>
> Here you have indented the elif statement but it should be at the same
> level as the if:
>  >>> x=3
>  >>> if x==0:
> ...     print x
> ... elif x==2:
> ...     print "something else"
> ...
>  >>>
>
>
>> SyntaxError: invalid syntax
>>
>> Again:
>> >>> x=3
>> >>> if x==2: print x
>> elif x&1 == 1: print 'x is odd'
>> >>> elif x&1 ==0: print 'x is even'
>> SyntaxError: invalid syntax
>
> I'm not sure what's going on here but the second elif is being
> interpreted separate to the rest of the if statement hence a SyntaxError:
>  >>> elif x&1 == 0: print "x is even"
>    File "<stdin>", line 1
>      elif x&1 == 0: print "x is even"
>         ^
> SyntaxError: invalid syntax
>
> This works:
>  >>> if x==2: print x
> ... elif x&1 == 1: print 'x is odd'
> ... elif x&1 ==0: print 'x is even'
> ...
> x is odd
>
>
>>
>> If I am pressing two Enters, the code executes; so I have a elif
>> without a if, and again, a syntax error. What am I not doing right?
>>
>> Thank you.
>>
>> Sudarshana.
> HTH,
> Adam.
>
>
>


-- 
Elegbede Muhammed Oladipupo
OCA
+2348077682428
+2347042171716
www.dudupay.com
Mobile Banking Solutions | Transaction Processing | Enterprise
Application Development


More information about the Tutor mailing list