In this HackerRank String Formatting problem in python we need to code a program in which we can accept an integer input n that's greater than 1. and on the output screen, we need to print out the binary, decimal, hexadecimal and octal number of that given integer.


Hackerrank String Formatting solution in python


Problem solution in Python 2 programming.

N = int(raw_input())

width = len(str(bin(N)))-2

for num in range(1,N+1):
    for base in 'doXb':
        print '{0:{width}{base}}'.format(num, base=base, width=width),
    print


Problem solution in Python 3 programming.

N = int(input())
l = len(bin(N)) - 2

for i in range(1, N + 1):
    f = ""
    for c in "doXb":
        if f:
            f += " "
        f += "{:>" + str(l) + c + "}"
    print(f.format(i, i, i, i))

Problem solution in PyPy programming.

n = int(raw_input())
width = len("{0:b}".format(n))
for i in xrange(1,n+1):
    print "{0:{width}d} {0:{width}o} {0:{width}X} {0:{width}b}".format(i, width=width)

Problem solution in pypy3 programming.

def print_formatted(number):
    width=len(bin(number))-2
    for num in range(1,number+1): 
        for base in ('d', 'o', 'X', 'b'):
            print("{0:{width}{base}}".format(num, base=base, width=width), end=' ')
        print()

Note: in the above code in the for loop there is only one single line of code. for visibility purpose am going to cut down that line of code into another line.