The definition
Fix a measure space (X, M, μ). For a real number p with 1 ≤ p < ∞, the space Lᵖ(μ) is the collection of measurable functions f on X for which the integral of |f|ᵖ is finite. That integral, raised to the power 1/p, is the Lᵖ norm of f, written ‖f‖ₚ = (∫ |f|ᵖ dμ)^(1/p). So a function belongs to Lᵖ exactly when ‖f‖ₚ < ∞.
The case p = 1 recovers the ordinary integrable functions: ‖f‖₁ = ∫ |f| dμ. The case p = 2 gives the square-integrable functions, the only Lᵖ that is also a Hilbert space. Larger p weights big values of |f| more heavily, so membership in a higher Lᵖ is a stronger demand on how tall the function is allowed to get.
Why we work modulo null sets
Here is the subtle move. We want ‖·‖ₚ to be a genuine norm, and a norm must satisfy ‖f‖ = 0 ⇒ f = 0. But ∫ |f|ᵖ = 0 only forces f = 0 almost everywhere, not everywhere — a function that is 1 at a single point and 0 elsewhere has Lᵖ norm zero yet is not the zero function. So the raw ‖·‖ₚ is only a seminorm.
The fix is to declare two functions equivalent when they agree almost everywhere, and to call the equivalence class the real object of Lᵖ. Then ‖f‖ₚ = 0 means the class of f is the zero class, and the offending point-mass examples vanish. From now on, an element of Lᵖ is a class of functions, even though we keep writing it as if it were a single function.
Claim: on Lᵖ (classes mod a.e. equality), ‖f‖ₚ = 0 iff f = 0 in Lᵖ.
(⇐) If f is the zero class, pick the representative f ≡ 0.
Then ∫ |0|ᵖ dμ = 0, so ‖f‖ₚ = 0.
(⇒) Suppose ‖f‖ₚ = 0, i.e. ∫ |f|ᵖ dμ = 0.
Let A = { x : |f(x)| > 0 }, and A_n = { x : |f(x)| > 1/n }.
On A_n we have |f|ᵖ > (1/n)ᵖ, so
0 = ∫ |f|ᵖ dμ ≥ ∫_{A_n} |f|ᵖ dμ ≥ (1/n)ᵖ · μ(A_n).
Hence μ(A_n) = 0 for every n.
Since A = ∪_n A_n is a countable union of null sets,
μ(A) ≤ Σ μ(A_n) = 0.
So f = 0 almost everywhere, i.e. f is the zero class. ∎