String Formatting

  • + 0 comments
    def print_formatted(number):
        decimal = [str(i) for i in range(1, number + 1)]
        octal = [str(oct(i)[2:]) for i in range(1, number + 1)]
        hexidecimal = [hex(i)[2:].upper() for i in range(1, number + 1)]
        binary = [str(bin(i)[2:]) for i in range(1, number + 1)]
        
        # padding
        max_binary = len(max(binary, key=len))
        
        for i in range(len(decimal)):
            print(decimal[i].rjust(max_binary, ' '), end=' ')
            print(octal[i].rjust(max_binary, ' '), end=' ')
            print(hexidecimal[i].rjust(max_binary, ' '), end=' ')
            print(binary[i].rjust(max_binary, ' '))
        
    if __name__ == '__main__':
        n = int(input())
        print_formatted(n)