El error es porque estás haciéndolo directamente desde el número, fíjate que al asignar la variable 'b' la englobé con la función 'str', la cual convierte (o intenta convertir) un determinado dato a una string. Seguramente se te pasó por alto ese dato.
Luego, lo que hice fue extraer una subcadena ("substring") desde la original. Básicamente el funcionamiento es:
Código:
var = "supercalifragilisticoespialidoso"
print var[0:5]
print var[28:]
print var[:3]
El primer 'print' devuelve "super", porque es lo que está desde el índice o caracter 0 (cero) y el 5. El segundo devuelve "doso", porque es lo que está entre el índice 28 y el último (lo que ocurre al omitir un número), el tercero devuelve "sup" porque cuenta desde el principio hasta el tercer caracter.
Luego...
Como ves, busca desde el principio de 'b' hasta la posición del primer punto (b.find(".")) más 5. Ponemos 5 y no 4 porque debemos saltarnos también el punto.
Saludos.
P.D.: el testamento lo puse porque estoy aburrido xD