Creo que has exagerado un poco con las conversiones
- Línea 7: True== es innecesario y redundante. Deja esa línea como
int(len()) es innnecesario, el tipo de dato que devuelve len() es un entero.
- Líneas 8 y 10: str(Xo) es innecesario ya que Xo es una cadena, definida en la línea 6.
De todas formas el if se puede cambiar por un formato de cadenas, ya que veo que solamente lo estás haciendo para agregar el 0 en caso de ser necesario:
Puedes sustituir la línea 5 por
Código python:
Ver originalprint "Yo=%(valorYo)s/Xo%(valorXo)s/X1=%(valorXo)02d" % { 'valorYo' : self.s, 'valorXo' : self.s**2 }
Básicamente lo que haces es sustituir el valor de Yo y de Xo cuando sea necesario.
%(valorXo)s => incluir el valor de valorXo, con formato de cadena (valorXo debe ser uno de los índices en el diccionario que sigue al %)
%(valorXo)02d => incluir el valor de valorXo, con formato de entero de (al menos) 2 dígitos. En caso de que valorXo sea de largo menor que 2, se agrega un 0 para 'rellenar'
Saludos.