Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | None | 0 0
  1. class AlignableStr(str):
  2.  
  3.     def __init__(self, *args):
  4.         pass
  5.  
  6.     def align(self, length):
  7.         value = str()
  8.         cnt = 0
  9.  
  10.         for letter in self:
  11.             if letter == ' ':
  12.                 cnt += 1
  13.  
  14.         try:
  15.  
  16.             num_of_space = (length - len(self)) // cnt + 1
  17.             add_space = (length - len(self)) % cnt
  18.  
  19.         except ZeroDivisionError:
  20.             value = self + ' '*(length - len(self))
  21.             return value
  22.  
  23.         if num_of_space < 1:
  24.             return self
  25.  
  26.         for letter in self:
  27.             if letter != ' ':
  28.                 value += letter
  29.             else:
  30.                 value += ' '*num_of_space
  31.  
  32.         for letter in value:
  33.             if letter == ' ':
  34.                 value = value[:value.index(letter)+1] + ' '*add_space + value[value.index(letter)+1:]
  35.                 break
  36.  
  37.         return value
  38.  
  39.  
  40. s = AlignableStr(input())
  41.  
  42. print(s.align(10))
  43. print(len(s.align(10)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement