Adventures in
Python: Using a Dictionary to Print a
Table
(OT: HP Prime new
keyboard colors)
Here is a short program where a dictionary and the format
command are used to print a nice looking table.
In Python, a dictionary is defined as list of two-element
entries, in the format { x1:y1, x2:y2, x3:y3, … }. Where x1, y1, x2, y2, and so on are strings
or numbers.
We can also designate the format of data within a print statement. The general syntax:
print( a string that contains {n:ABC}.format(n0, n1, n2, …))
You can as many print formats as you want. The format inside of {n:ABC}:
n = the nth argument, starting with 0
A = 0 for padded zeros, < align left, > align right, ^
align center
B = length of a field in the form of L.N (L = length of the field, N = number of
decimal places, note that L is the minimum
filed length, not maximum)
C = d or i = integer, f - floating, r or s = string
Example:
>>> import
math
Print π with 10 decimal places:
>>>
print('{0:1.10f}'.format(math.pi))
3.1415926536
Print π with 8 decimal places:
>>>
print('{0:1.8f}'.format(math.pi))
3.14159265
Print the first five letters of the alphabet from a string
of the entire alphabet:
>>>
print('{0:10.5s}'.format('abcdefghijklmnopqrstuvwxyz'))
abcde
Sample script:
# Program 011: Using format in print
# General syntax:
# print(' ...
{n:ABC} '.format(x0, x1))
# n = the nth
argument, starting with 0
# A = 0 for padded
zeros, < align left, > align right, ^ align center
# B = length of a
field
# C = d or i =
integer, f - floating, r or s = string
# x0, x1 are items
# If a table is
used, use a for loop with tablename.items
# Table sytnax
= { item0 : item1, [start a new row]}
# for x0, x1 in
table.items():
# print('...
'.format(x0,x1))
# For this, table
can only have 2 times per row?
# table of the
famous stars
table =
{'Antares':'Scorpius', 'Regulus':'Leo',
'Aldebaran':'Taurus',
'Sadalmelik':'Aquarius',
'Siruis':'Canis Major', 'Vega':'Lyra',
'Polaris':'Ursa Minor',
'Deneb':'Cygnus',
'Alpha Centauri':'Centaurus',
'Altair':'Aquila',
'Castor':'Gemini',
'Betelgeuse':'Orion',
'Fomalhaut':'Piscis Austrinus',
'Spica':'Virgo'}
print('Astronomy\'s
Famous Stars')
# need \' for the
apostrophe
# for our example
let x0 = star, x1 = constellation
for star,
constellation in table.items():
# 0 = star, 1 = constellation
# <15s = left aligned, 15 spaces, string
print('Star: {0:<15s} ==> Constellation:
{1:<15s}'
.format(star,constellation))
Result:
Astronomy's
Famous Stars
Star: Antares ==> Constellation: Scorpius
Star: Regulus ==> Constellation: Leo
Star: Aldebaran ==> Constellation: Taurus
Star: Sadalmelik ==> Constellation: Aquarius
Star: Siruis ==> Constellation: Canis
Major
Star: Vega ==> Constellation: Lyra
Star: Polaris ==> Constellation: Ursa Minor
Star: Deneb ==> Constellation: Cygnus
Star: Alpha Centauri ==> Constellation: Centaurus
Star: Altair ==> Constellation: Aquila
Star: Castor ==> Constellation: Gemini
Star: Betelgeuse ==> Constellation: Orion
Star: Fomalhaut ==> Constellation: Piscis Austrinus
Star: Spica ==> Constellation: Virgo
Overtime
I finally got a new HP Prime with the new color contrast
(darker blue shift text, slightly darker orange shift text, keys are a lighter
color, the number keys are white), and yes, I do like the new design. (model
number G8X92AA, hardware version C, 2016 edition)
Eddie
This blog is property of Edward Shore, 2017.