TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

Python Lower and Upper: Capitalize String

This Python article covers the lower, upper, islower and isupper methods. It then uses the title and capitalize methods.

Lower, upper. All letters are either lowercase or uppercase.

We can change the case of characters in Python with the lower and upper methods.

String casing. More powerful methods such as capitalize and title() also exist. We cover the basic methods (upper and lower) first, and then explore isupper and islower.

An example. Often we need to uppercase (or lowercase) strings. With the upper and lower methods, we apply the needed transformations. These methods do not affect non-letter characters.

Tip: We never need to call upper() on a string that is already uppercased. Please see the isupper and islower methods.

Based on:

Python 3

Python program that uses upper, lower

value = "Tree"

# Uppercase the string.
x = value.upper()
print(x)

# Lowercase the string.
y = value.lower()
print(y)

Output

TREE
tree

Isupper, islower. Is a string already uppercase or lowercase? We can tell this easily with the isupper and islower methods. These two methods are often used with if-statements.

Also: Please see the performance test. Is lower is used to improve speed. With it, we can avoid copying strings.

Python program that uses isupper, islower

value1 = "ABC123"
value2 = "abc123"

# Method can be used in an if-statement.
if value1.isupper():
    print(1)

# Call methods on both strings.
print(value1.isupper())
print(value2.isupper())

print(value1.islower())
print(value2.islower())

Output

1
True
False
False
True

Capitalize. This method affects only the first letter in a string. It changes it to be uppercase. If the first character is not a letter, nothing happens.

Here: Please notice that the variable "s" is assigned to the result of capitalize().

Tip: This means capitalize() does not change the existing string in-place. It creates a new copy of the string in memory and returns that.

Python program that uses capitalize

# An input string.
s = "deves"

# Capitalize and assign.
s = s.capitalize()
print(s)

Output

Perls

Title. Strings have a title method. This method is not smart. But it does help with many common strings. It capitalizes each word in a string.

Warning: Title will capitalize words that are not supposed to be capitalized, like "of" and "and."

Thus: A custom implementation (not the title method) would be needed if your requirements are more complex.

Python program that uses title string method

value = "the unbearable lightness of being"

# Convert to title case.
result = value.title()
print(result)

Output

The Unbearable Lightness Of Being

Istitle. This is a less-useful method. It scans a string and determines if the string has capital letters for each word. It can be used to avoid calling title() on strings.

Note: As with the title method, istitle will become confused on certain words. It requires all words, even "and" to be capitalized.

Python program that uses istitle

value1 = "A Car"
value2 = "A car"
value3 = "a Car"
value4 = "A123"
value5 = "a123"

# Test istitle method.
print(value1.istitle())
print(value2.istitle())
print(value3.istitle())
print(value4.istitle())
print(value5.istitle())

Output

True
False
False
True
False

Benchmark. The islower method can be used as an optimization. Before calling lower() we can check whether the string is already lowercase.

And: If the string is already lowercased, we can avoid calling lower. This avoids creating a new string.

Caution: If the majority of your strings are not lowercase, this check will slow down a program. The islower method has a cost too.

In the results, we see that the code that checks islower() first is more than twice as fast. This is an unusual data set. It is not real-world data.

However: Many programs add calls to lower just in case. Usually these calls have no effect. This optimization would benefit these programs.

Python program that benchmarks islower, lower

import time

value = "intuitive"

print(time.time())

# Version 1: lower.
i = 0
while i < 10000000:
    v = value.lower()
    i += 1

print(time.time())

# Version 2: islower and lower.
i = 0
while i < 10000000:
    if not value.islower(): v = value.lower()
    i += 1

print(time.time())

Output

1384626116.650
1384626122.033    lower():               5.38 s
1384626124.027    islower() and lower(): 1.99 s

A summary. Text processing often involves normalizing the casing of strings. With the lower method and its friend upper(), we do this.

Testing cases. Performance is improved in many programs by using islower() and isupper(). This reduces work but may introduce complexity.


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf