Some remarks:
- Rewriting the while loop as a for loop is nicer and makes it less likely to get an infinite loop.
zip
- Unpacking tuples / lists is nice (e.g.
a, b = (1, 2))
- Take a look at string formatting with Python, especially the columns section. Or simply use
\t (the ASCII-symbol for tab).
As code, it looks like this:
import string
chars = string.ascii_uppercase
digits = string.digits
for a in range(0, min(len(chars), len(digits)), 2):
for char, digit in zip(chars[a], digits[a]):
print("{0:>3} {1:>3}".format(char, digit))
Formatting options like {i:>n} mean:
>: Right align (you don't need it. You can also take < or nothing.
i: i-th element of the tuple
n: n columns in total. This is also not necessary.
I usually make something like:
import string
chars = string.ascii_uppercase
digits = string.digits
headers = ["chars", "digits"]
sizes = [(len(el) + 2) for el in headers]
formatter = "{0:>" + str(sizes[0]) + "} {1:>" + str(sizes[1]) + "}"
print(formatter.format(*headers))
print("-"*(sum(sizes) + len(sizes)))
for a in range(0, min(len(chars), len(digits)), 2):
for char, digit in zip(chars[a], digits[a]):
print(formatter.format(char, digit))
which gives
chars digits
-----------------
A 0
C 2
E 4
G 6
I 8