Pythonの条件分岐

Pythonはインデントを用いたブロック構造を定義しているため、
下記のようなネスト構造の条件分岐を上から順に書くとエラーとなる。

b=0

if(b==0):
   print "b==0"
   if(len(str(b))==1):
      print len(str(b))==1
else:
   print "b!=0"


正しくは、一番上の階層となる条件文をまずは書く。

b=0
if(b==0):
   print "b==0"
else:
   print "b!=0"

次に、その下の条件文を書くと

b=0

if(b==0):
   print "b==0"
   if(len(str(b))==1):
      print len(str(b))==1
else:
   print "b!=0"

無事に実行される。

>>b==0
>>len(str(b))==1