String

Strings can be created by enclosing characters inside a single quote or double quotes. Even triple quotes can be used in Python but generally used to represent multiline strings and doc strings.

string = "Hello world!"
print string
# Hello world!

mystring = '''first line 
second line
third line'''
print mystring
# first line 
# second line
# third line

print('''He said, "What's there?"''')
# He said, "What's there?"            # using triple quotes

print('He said, "What\'s there?"')
# He said, "What's there?"            # escaping single quotes

print("He said, \"What's there?\"")
# He said, "What's there?"            # escaping double quotes

Convert from other type with str()

#convert from integer to string
str(1)

Slicing: similar as in list

string = "Hello world!"
print string[3]
# l                   # return the 4th character
print string[3:7]
# lo w                # return the 4th to 7th character
print string[:7]
# Hello w             # from the beginning to the 7th character
print string[3:]
# lo world!           # from the 4th to the end
print string[-3:]
# ld!                 # 3rd character from the end until the end
print string[3:8:2]
# l o                 # [start:stop:step]

Reverse

Note that reverse() doesn't work for string. Need to convert string to list and then reverse().

print string[::-1]
# !dlrow olleH

Important: We can't do slicing and reverse simultaneously. If we want to reverse a substring:

string[start:end][::-1]

Change a string

Strings are immutable. This means that elements of a string cannot be changed once it has been assigned. We can simply reassign different strings to the same name.

string = "Hello world!"
string[0] = "h"
print string
# TypeError: 'str' object does not support item assignment

string = "hello world!"
print string
# hello world!

Delete characters from a string

We cannot delete or remove characters from a string. But deleting the string entirely is possible using the keyword

del.

string = "hello world!"
print string
# hello world!
del string
print string
# NameError: name 'string' is not defined

Concatenation of Two or More Strings

Joining of two or more strings into a single one is called concatenation.

The + operator does this in Python. Simply writing two string literals together also concatenates them.

The * operator can be used to repeat the string for a given number of times.

string1 = "hello"
string2 = "world"

print string1 + string2
# helloworld

whole = string1 + " " + string2
print whole
# hello world

print string1 * 2 + " " + string2
# hellohello world

String Membership Test

We can test if a sub string exists within a string or not, using the keywordin.

print "l" in "hello"
# True

print "l" not in "hello"
# False

String Comparison

We can use == to compare if two strings are the same.

"abc" == "ab"
# False
"abc" == "abc"
# True

Iterate each character in a string

word = 'test'
for c in word:
    print c

for i, c in enumerate(word):
    print i, c

Convert all characters to uppercase/lowercase

These make a new string with all letters converted to uppercase and lowercase, respectively.

print string.upper()
# HELLO WORLD!
print string.lower()
# hello world!

startswith/endswith

This is used to determine whether the string starts with something or ends with something, respectively.

print string.startswith("Hello")
# True
print string.startswith("hello")
# False
print string.endswith("!")
# True

Split

This splits the string into a bunch of strings grouped together in a list. If not specified, the default of string.split() is splitting by space.

print string.split(" ")
# ['Hello', 'world!']
print string.split("l")
# ['He', '', 'o wor', 'd!']

Enumerate

The enumerate()function returns an enumerate object. It contains the index and value of all the items in the string as pairs. This can be useful for iteration.

string = 'cold'
print list(enumerate(string))
# [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]

Join strings

print ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
# This will join all words into a string

print '#'.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
# This#will#join#all#words#into#a#string

Length

Length including punctuation and spaces.

len(string)
# 12

Count

differentiate uppercase and lowercase

can count the number of space

can count the number of punctuation

print string.count("l")
# 3
print string.count("h")
# 1
print string.count("H")
# 0 
print string.count(" ")
# 1
print string.count("!")
# 1

Finding substring

Both index and find return the index of the first occurrence of the first character in the substring. The only difference is that when the substring is not found, index returns ValueError and find returns -1.

string = "hello world"

print string.index("l")
# 2
print string.index("ll")
# 2

print string.find("l")
# 2
print string.find("ll")
# 2

print string.index("lll")
# ValueError: substring not found

print string.find("lll")
# -1

Replace part of a string

When using replace() to replace part of a string, need to assign the new value to the original name. Because string is immutable. Otherwise, the string won't be changed.

string = "hello world"
string = string.replace("hello", "Hello")
print string
# Hello world

Check if a string is letter

str.isalpha()Return true if all characters in the string are alphabetic and there is at least one character, false otherwise.

string = 'abc'
print string.isalpha()
# True

A list of build-in functions for strings

Last updated