Python Forum
Is there a better way to write this case scenario?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Is there a better way to write this case scenario?
#7
With the last example you've to pay attention about the order of the definition for page_sizes.

page_sizes = {(1189, 841):'A0', (841, 594):'A1', (594, 420):'A2',
                      (420, 297):'A3', (297, 210):'A4'}
The big numbers comes first, so this is the portrait orientation of this formats. If you accidentally exchange them (small number first, big number after), you'll never find the key.

You can calculate the sizes also with a function, here a small example:

from collections import OrderedDict


def format_sizes():
    formats_by_class = OrderedDict()
    formats_by_size = OrderedDict()
    w, h = 841, 1189 # definition of A0
    for i in range(11):
        formats_by_class['A{}'.format(i)] = (h, w)
        formats_by_size[(h, w)] = 'A{}'.format(i)
        w, h = round(h / 2), w
    return formats_by_class, formats_by_size
Instead of a normal dict, I use an OrderedDict, which keeps the order. So if you print the output, the order is preserved.
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply


Messages In This Thread
RE: Is there a better way to write this case scenario? - by DeaD_EyE - Sep-25-2017, 09:44 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Switch case or match case? Frankduc 9 4,886 Jan-20-2022, 01:56 PM
Last Post: Frankduc
  Help: write 'case' with Python ICanIBB 2 1,960 Jan-27-2021, 09:39 PM
Last Post: Larz60+
  How to write switch case statement in Python pyhelp 9 9,619 Nov-11-2018, 08:53 PM
Last Post: woooee

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020