In order to test the beginning and ending of a given string in Python, one can use the methods str.startswith()
and str.endswith()
.
str.startswith(prefix[, start[, end]])
As it's name implies, str.startswith
is used to test whether a given string starts with the given characters in prefix
.
>>> s = "This is a test string"
>>> s.startswith("T")
True
>>> s.startswith("Thi")
True
>>> s.startswith("thi")
False
The optional arguments start
and end
specify the start and end points from which the testing will start and finish. In the following example, by specifying a start value of 2
our string will be searched from position 2
and afterwards:
>>> s.startswith("is", 2)
True
This yields True
since s[2] == 'i'
and s[3] == 's'
.
You can also use a tuple
to check if it starts with any of a set of strings
>>> s.startswith(('This', 'That'))
True
>>> s.startswith(('ab', 'bc'))
False
str.endswith(prefix[, start[, end]])
str.endswith
is exactly similar to str.startswith
with the only difference being that it searches for ending characters and not starting characters. For example, to test if a string ends in a full stop, one could write:
>>> s = "this ends in a full stop."
>>> s.endswith('.')
True
>>> s.endswith('!')
False
as with startswith
more than one characters can used as the ending sequence:
>>> s.endswith('stop.')
True
>>> s.endswith('Stop.')
False
You can also use a tuple
to check if it ends with any of a set of strings
>>> s.endswith(('.', 'something'))
True
>>> s.endswith(('ab', 'bc'))
False