Translator-ish Library In this library:


text_data(val) translates val to computer data types
colorcode() returns the selected color in hex


Can you please tell me how I can make it better?

from tkinter.colorchooser import askcolor
def text_data(text):
    texti = []
    binary = []
    ordv = []
    hexadecimal = []
    octal = []
    i = 0
    while i &lt; len(text):
        j = ord(text[i])
        k = bin(ord(text[i]))
        l = hex(ord(text[i]))
        m = oct(ord(text[i]))
        k = k[2:]
        l = l[2:]
        m = m[2:]
        print(text[i], " ", j, " ", k, "", l, "", m)
        binary.append(k)
        ordv.append(j)
        hexadecimal.append(l)
        texti.append(text[i])
        octal.append(m)
        i += 1
    print("\n")
    print(binary)
    print("\n")
    print(ordv)
    print("\n")
    print(hexadecimal)
    print("\n")
    print(octal) 
def colorcode():
    return askcolor()[1]
print(colorcode())
Instead of


i = 0
while i &lt; len(text):
    j = ord(text[i])
    ...
    ...
    ...
    i += 1



and using text[i] for accessing individual elements (which is NOT a Pythonic way).
Get rid of i and write simply

for c in text:
    j = ord(c)
    ...
    ...
    ...





    j = ord(text[i])
    k = bin(ord(text[i]))
    l = hex(ord(text[i]))
    m = oct(ord(text[i]))



After performing the first of those commands is ord(text[i]) already in the variable j, isn't it? So why not reuse it in the rest of them:

for c in text:
    j = ord(c)
    k = bin(j)
    l = hex(j)
    m = oct(j)




Instead of


print(text[i], " ", j, " ", k, "", l, "", m)



use the format() method and replacement fields {}:

print("{}   {}   {}  {}  {}".format(text[i], j, k, l, m))