Python string PunctuationUse the string.punctuation property and print all punctuation. Test for punctuation chars like periods and commas.
Punctuation. A Python string may contain letters, whitespace, numbers, and punctuation. Punctuation characters include commas and periods and semicolons.
With Python, we can access the string.punctuation constant. This contains all the common punctuation characters. It can be tested and used in programs.
In operator use. Here we use the in-operator on the string.punctuation constant. This allows us to test whether a char in a string is a punctuation character.
Python program that tests for punctuation
import string # An input string. name = "hey, my friend!" for c in name: # See if the char is punctuation. if c in string.punctuation: print("Punctuation: " + c)
Punctuation: , Punctuation: !
Loop example. In this example we use a for-in loop over the string.punctuation characters. We print each character with surrounding brackets.
Note The string.punctuation values do not include Unicode symbols or whitespace characters.
Python program that uses string.punctuation
import string # Display punctuation. for c in string.punctuation: print("[" + c + "]")
[!] ["] [#] [$] [%] [&] ['] [(] [)] [*] [+] [,] [-] [.] [/] [:] [;] [<] [=] [>] [?] [@] [[] [\] []] [^] [_] [`] [{] [|] [}] [~]
Remove punctuation. With the "in" operator and the string.punctuation constant, we can remove all punctuation chars from a string.
Note We add each character to our result that is not punctuation. Spaces (which are not punctuation) are kept.
Python program that removes punctuation from string
import string def remove_punctuation(value): result = "" for c in value: # If char is not punctuation, add it to the result. if c not in string.punctuation: result += c return result # Test our method. temp = "hello, friend!... welcome." print(temp) print(remove_punctuation(temp))
hello, friend!... welcome. hello friend welcome
Whitespace. Let us look at another occasionally-helpful constant in the string module: string.whitespace. This too can be looped over or tested.
Tip Instead of testing constant strings with "in," consider using methods like isspace().
Python program that uses string.whitespace
import string print(" " in string.whitespace) print("\n" in string.whitespace) print("X" in string.whitespace)
True True False
For performance, the in-operator is fast. But it will not outperform a specialized lookup table. We could use a dictionary to store a value indicating whether a char is punctuation or not.
A review. Python contains many helpful constants in its string module. For example, we can test whitespace, digits, punctuation. We avoid writing these characters out in special code.
© 2007-2022 sam allen.
see site info on the changelog.