Python String endswith() Method

The endswith() method is used to check whether a string ends with a specified suffix. It returns True if the string ends with the specified suffix, and False otherwise.

Syntax

string.endswith(substring, start, end)

Parameters

substring: The string (or tuple of strings) to check for.

start (Optional): The starting index from where the check begins. Default is 0.

end (Optional): The ending index where the check ends (exclusive). Default is the end of the string.

Return Value

Returns True if the string ends with the specified suffix, otherwise False.

Examples

Check if a String Ends With the Specified Suffix

text = "Python is awesome"
print(text.endswith("awesome")) # Output: True
print(text.endswith("amazing")) # Output: False

With start Parameter

If you only provide the start parameter, Python checks whether the substring from that index to the end of the string ends with the specified suffix.

text = "Python is awesome"
print(text.endswith("awesome", 10)) # Output: True
print(text.endswith("awesome", 12)) # Output: False

With start and end Parameters

If you provide both the start and end parameters, Python checks whether the substring from the start index up to (but not inclucing) the end index ends with the specified suffix.

text = "Python is awesome"
print(text.endswith("awesome", 10, 16)) # Output: False
print(text.endswith("awesome", 10, 17)) # Output: True

The end parameter is exclusive meaning the prefix check doesn’t include the character at the end index.

Using a Tuple of Suffixes

You can provide a tuple of suffixes to the endswith() method if you want to check whether the string ends with any of the specified suffixes.

text = "Python is awesome"
print(text.endswith(("easy", "amazing", "awesome"))) # Output: True

Case-Sensitivity

The endswith() method is case-sensitive, meaning it treats uppercase and lowercase letters as distinct characters.

text = "Python is Amazing"
print(text.endswith("amazing")) # Output: False

In this example, the endswith() method checks if the string ends with the exact lowercase suffix "amazing" but the string text ends with the suffix "Amazing" with an uppercase "A". Since the cases don’t match, the method returns False.

Practical Example

You can use the endswith() methods to check file extensions.

file = "image.jpg"

if file.endswith(".jpg"):
    print("Valid file")
else:
    print("Invalid file type")

Output:

Valid file

If you need to check if the string starts with the specified prefix, you can use the startswith() method.