String Formatting

Sort by

recency

|

1744 Discussions

|

  • + 0 comments

    Very Sneaky this one:

    def print_formatted(number):
        # your code goes here
        width = len(bin(number)[2:])
        if 0 < number <= 99 :
             for x in range(1,number+1):
                  dec = str(x).rjust(width)
                  octal = format(x, 'o').rjust(width)
                  hexd = hex(x)
                  hex_str = format(x, 'X').rjust(width)
                  binary = bin(x)
                  binary_str = format(x, 'b').rjust(width)
                  print(dec, octal, hex_str, binary_str)
    
  • + 0 comments

    Hello Everybody ; In my code you dont have to use "rjust" or 50+ lines of code ,mine is just a pure concepts with few lines .If you do like it upvote me

    def print_formatted(number):

    width = len(bin(number))-2
    for i in range (1,n+1):
        print("{0:{w}d} {0:{w}o} {0:{w}X} {0:{w}b}".format(i,w=width))
    
        # your code goes here
    

    if name == 'main': n = int(input()) print_formatted(n)

  • + 0 comments

    def octal(number): nm = number st = '' while nm > 0: st += str(nm % 8) nm //= 8
    if st: return st[::-1] return '0'

    def binary(number): nm = number st = '' while nm > 0: st += str(nm % 2) nm //= 2 if st: return st[::-1] return '0'

    def hexadecimal(number): nm = number st = '' digit = '0123456789ABCDEF' while nm > 0: st += digit[nm % 16] nm //= 16 if st: return st[::-1] return '0'

    def print_formatted(n): width = len(bin(n)[2:]) # max width of binary for i in range(1, n+1): deci = str(i).rjust(width) octa = octal(i).rjust(width) hexa = hexadecimal(i).rjust(width) bina = binary(i).rjust(width) print(deci, octa, hexa, bina) if name == 'main': n = int(input()) print_formatted(n)

  • + 0 comments

    Not that easy

    def print_formatted(n):
        #lists for all number representations
        binary_list = [0,1]
        decimal_list = [0,1,2,3,4,5,6,7,8,9]
        octal_list = [0,1,2,3,4,5,6,7]
        hex_cap_list = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F']
        width_list = []
        width_num = n
    
        #calculating width
        if width_num in binary_list:
            width_list.append(width_num)
        else:
            while width_num >= 2:
                remainder = width_num%2
                width_num = width_num//2
                width_list.append(remainder)
                if width_num < 2:
                    width_list.append(width_num)
                    
        width = len(width_list)
    
        for number in range(1,n+1):
            aux = number
            decimal = []
            octal = []
            hex_cap = []
            binary = []
    
            #binary
            if number in binary_list:
                binary.append(number)
            else:
                while number >= 2:
                    remainder = number%2
                    number = number//2
                    binary.append(remainder)
                    if number < 2:
                        binary.append(number)
            
            #decimal
            number = aux            
            if number in decimal_list:
                decimal.append(number)
            else:
                while number >= 10:
                    remainder = number%10
                    number = number//10
                    decimal.append(remainder)
                    if number < 10:
                        decimal.append(number)
            #octal
            number = aux            
    
            if number in octal_list:
                octal.append(number)
            else:
                while number >= 8:
                    remainder = number%8
                    number = number//8
                    octal.append(remainder)
                    if number < 8:
                        octal.append(number)
            #hexadecimal
            number = aux            
    
            if number in hex_cap_list:
                hex_cap.append(number)
            else:
                while number >= 16:
                    remainder = number%16
                    number = number//16
                    if remainder < 16:
                        if remainder == 10:
                            hex_cap.append('A')
                        elif remainder == 11:
                            hex_cap.append('B')
                        elif remainder == 12:
                            hex_cap.append('C')    
                        elif remainder == 13:
                            hex_cap.append('D')
                        elif remainder == 14:
                            hex_cap.append('E')
                        elif remainder == 15:
                            hex_cap.append('F')   
                        else:
                            hex_cap.append(remainder)
                        
                if number < 16:
                    if number == 10:
                        hex_cap.append('A')
                    elif number == 11:
                        hex_cap.append('B')
                    elif number == 12:
                        hex_cap.append('C')    
                    elif number == 13:
                        hex_cap.append('D')
                    elif number == 14:
                        hex_cap.append('E')
                    elif number == 15:
                        hex_cap.append('F')   
                    else:
                        hex_cap.append(number)
                
                
            decimal_num = ''.join(map(str,decimal[::-1]))
            octal_num = ''.join(map(str,octal[::-1])) 
            hex_num = ''.join(map(str,hex_cap[::-1]))
            binary_num = ''.join(map(str,binary[::-1]))
            print(
                decimal_num.rjust(width,' ') + ' ' +
                octal_num.rjust(width,' ') + ' ' +
                hex_num.rjust(width,' ') + ' ' +
                binary_num.rjust(width,' ') 
                           
                )
    
    if __name__ == '__main__':
        n = int(input())
        print_formatted(n)
    
  • + 0 comments

    This was challenging task.

    • The hex number had to be formatted to be upper case!
    • Binary padding had to be adjusted
    • Create a string of entire line instead of printing the individual lines.
    	i=1;
        length=len(format(number, 'b'));
        while i <= number:
            dec_i = i;
            oct_i = f"{i : o}";
            hex_i=f"{i : x}";
            bin_i =f"{i : b}";
            i += 1;
            print(str(dec_i).rjust(length)+ " " + str(oct_i).rjust(length)+" "+str(hex_i).upper().rjust(length)+ "" + str(bin_i).rjust(length+1), end = "\n")