'Python output complex line with floats colored by value

This is my first python program and my first asking a question on stack overflow so I apologize if my code is a mess and or if my question is ill-formatted.

I would like to print the same line I'm already printing, but each float should be a different color based on its value. (specifically >.7 is green, .7< is red) What is the best way to do this?

oreName=[#string names]

#escape char? I know there has to be a better way than this
#but this is the best ive come up with as the escape char didnt
#work the way I thought it should for '%'
char = '%'

netProfitBroker=[
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0]]

##code that populates netProfitBroker

def printOutput(array):
  "this prints all of the lines"
  for i in range(0,10):
    print oreName[i]+"=   %.3f \t 5"%(array[0][i])+char+"=%.3f \t10"%(array[1][i])+char+"=%.3f"%(array[2][i])    


print "\nnet profit brokered"
printOutput(netProfitBroker)

the output looks a bit like this: (I lost some/all of my whitespace formatting when I copied the output here)

net profit brokered

Veldspar   =   0.234     5%=0.340   10%=-0.017
Scordite   =   0.752     5%=0.297   10%=0.259
Pyroxeres  =   0.406     5%=1.612   10%=2.483
Plagioclase=   1.078     5%=0.103   10%=1.780
Omber      =   -7.120    5%=5.416   10%=4.612
Kernite    =   -10.822   5%=15.366  10%=6.626
Jaspet     =   17.772    5%=49.278  10%=62.380
Hemorphite =   -35.431   5%=82.912  10%=141.027
Gneiss     =   8.086     5%=-4638.549   10%=-3610.570
Arkonor    =   349.867   5%=-545.284    10%=-340.298

essentially:

"ore name=" arrayVal1 "5%="arrayVal2 "10%="arrayVal3

All the array vals should be printed out to 3 decimal places.



Solution 1:[1]

for Easy copy-paste after print:

for style in range(8):
    for fg in range(30,38):
        s1 = ''
        for bg in range(40,48):
            myform = ';'.join([str(style), str(fg), str(bg)])
            skel = '\x1b[{};{};{}m'.format(myform.split(';')[0],myform.split(';')[1],myform.split(';')[2])
            s1 += f'\x1b[{myform}m {repr(skel)} \x1b[0m'
        print(s1)
    print('\n')

This code print multiple pretty lines with different colors. example: '\x1b[5;31;40m' '\x1b[5;31;41m' '\x1b[5;31;42m' '\x1b[5;31;43m' for easy copy-paste to code. After print add to you code:

mycolor = '\x1b[5;35;43m'
rest    = '\x1b[0m'

and print for preview:

print(f"{mycolor}Hello world!{rest}")

for preview: Stack attach

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1