What will be the output of this Python 2.x program? : <p>Here is the program:</p>

<pre><code>score = raw_input("Enter your score between 0.0 and 1.0: ")
try:
    fscore = float(score)
except:
    print "Enter a numerical value for score."
    exit()
if fscore &gt;= 0.0 and fscore &lt;= 1.0:
    if fscore &gt;= 0.9:
        print "A"
    elif fscore &gt;= 0.8:
        print "B"
    elif fscore &gt;= 0.7:
        print "C"
    elif fscore &gt;= 0.6:
        print "D"
    elif score &gt;= 0.5:
        print "E"
    elif score &lt; 0.5:
        print "F"
else:
    print "Score is out of range."
</code></pre>

<p>This is a simple program to give grades to students based on their score. If you notice carefully, I have made a semantic error in the 4th <code>elif</code> statement. Instead of writing <code>elif fscore &gt;= 0.5</code>, I have written <code>elif score &gt;= 0.5</code>.</p>

<p>What's intriguing me is if I pass <code>0.4</code> in <code>score</code>, this program gives me output <code>E</code>. Shouldn't I receive an error? And even if I am not receiving an error, why <code>E</code>? Why not <code>A</code> or <code>B</code> or anything else?</p>
