Regarding the "select" statement, I think the most "Pythonic" approach is using dictionaries rather than nested ifs. Supposing we want to decode abbreviated day names ("mon") to full names ("Monday"): day_abbr='mon'
day_names_mapping={ 'mon':'Monday', 'tue':'Tuesday', 'wed':'Wednesday', 'thu':'Thursday', 'fri':'Friday', 'sat':'Saturday', 'sun':'Sunday' } try: full_day_name=day_names_mapping[day_abbr.casefold()] except KeyError: raise GoodLuckFixingItException('We don't have "'+day_abbr+'" in our week') This style is more compact (usually one line per case) and more meaningful (generic processing driven by separate data) than a pile of if statement, and more flexible: full_day_names=('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday') day_names={x.casefold()[0:3] : x for x in full_day_names} # A dict can also contain tuples, lists, and nested dicts, consolidating multiple switches over the same keys and organizing nested switches and other more complex control structures. -- https://mail.python.org/mailman/listinfo/python-list