Cleaning whitespace and normalizing text safely
Choose boundary trimming or whitespace collapsing without altering unrelated text.
Choose boundary trimming or whitespace collapsing without altering unrelated text.
Before you start
You should be comfortable with variables, loops, functions, lists and dictionaries. This lesson uses standard Python in an isolated browser; no uploads, external services or personal files are needed.
The idea
Cleaning is a policy. strip() removes boundary whitespace while split() followed by join() collapses internal whitespace too. Those operations serve different purposes: an address label may benefit from collapsed spacing, while a fixed-format message may not. Python whitespace handling includes more than the ordinary ASCII space.
Keep a display value separate from an identity key. casefold() helps caseless matching but does not remove accents or normalize every Unicode representation. Never apply every cleanup operation just because it is available.
Worked example
Read the contract before running this example. The assertion gives an independently stated expected result; a mismatch should lead you back to the input rules.
def normalize_label(text):
return " ".join(text.split())
assert normalize_label(' Ada\tLovelace \n') == 'Ada Lovelace'
Whitespace normalization changes layout, not identity. Case folding and accent removal would exceed the contract.
Common mistakes
Avoid lowercasing names intended for display, removing accents without a requirement, or using a truthiness check that discards valid zero values.
Guided practice
Trace the worked example one record or character at a time. Identify which values are copied, which are normalized, and which are rejected. Then replace its input with the empty case and predict the exact return type before running it. Add one boundary case that would expose an overly broad shortcut.
Independent practice
Recap
Choose boundary trimming or whitespace collapsing without altering unrelated text. Keep input contracts, data transformations and presentation separate. Preserve information needed to explain rejected data, and return deterministic results that another function can use.