Open In App

Difference between casefold() and lower() in Python

Last Updated : 01 Mar, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In this article, we will learn the differences between casefold() and lower() in Python. The string lower() is an in-built method in Python language. It converts all uppercase letters in a string into lowercase and then returns the string. Whereas casefold() method is an advanced version of lower() method, it converts the uppercase letter to lowercase including some special characters which are not specified in the ASCII table for example 'ß' which is a German letter and its lowercase letter is 'ss'.

lower() method in Python

In this example, we have stored a string in variable 's1' which includes uppercase letters, and converted it to lowercase using the lower() method.

Syntax of lower(): string.lower()
Parameters: It does not take any parameter.
Returns: It returns a lowercase string of the given string.

Python
s1 = "GeeksForGeeks"

s2 = s1.lower()
print(s2)

Output
geeksforgeeks

casefold() method in Python

In this example, we have stored a German letter 'ß' in 's1' and converted it to lowercase using both methods casefold() and lower() and we can see in the output that casefold() converts it to lowercase whereas using lower(), the letter is printed as it is after conversion.

Syntax of casefold(): string.casefold()
Parameters: It does not take any parameter.
Returns: It returns a lowercase string of the given string.

Python
s1 = "ß"

s2 = s1.casefold()
print("Using casefold() - ",s2)

s3 = s1.lower()
print("Using lower() - ",s3)

Output
Using casefold() -  ss
Using lower() -  ß

Difference between lower() and casefold() in Python

Featurelower()casefold()
PurposeConverts uppercase letters to lowercase.Converts uppercase letters to lowercase, including special characters and locale-specific cases.
Handling of Special CharactersDoesn't handle special or language-specific cases.Handles special cases like German "ß" (sharp S) correctly (e.g., "ß".casefold() => "ss").
Use CaseBasic lowercase conversion for general text processing.Best for case-insensitive comparisons, especially for multilingual text.
Example"HELLO".lower() => "hello""HELLO".casefold() => "hello"
Example with Special Characters"ß".lower() => "ß""ß".casefold() => "ss"

Next Article

Similar Reads