7.9. String methods¶
Strings are an example of Python objects. An object contains both data (the actual string itself) and methods, which are effectively functions that are built into the object and are available to any instance of the object.
Python has a function called dir
which lists all the methods
available for an object. The type
function returns the type
of an object.
While the dir
function lists the methods, and you can use
help
to get some simple documentation on a method, a better
source of documentation for string methods would be
https://docs.python.org/library/stdtypes.html#string-methods.
>>> help(str.capitalize)
Help on method_descriptor:
capitalize(...)
S.capitalize() -> str
Return a capitalized version of S, i.e. make the first character
have upper case and the rest lower case.
>>>
- dir()
- Correct! dir() will list all the methods that can be used with an object.
- print()
- Incorrect! print() prints whatever is within the parentheses. Try again.
- type()
- Incorrect! type() returns the type of the object within its parentheses. Try again.
- object()
- Incorrect! object() returns a new featureless object. Try again.
11-9-2: What function lists the methods available for an object?
Calling a method is similar to calling a function (it takes arguments and returns a value), but the syntax is different. We call a method by typing the variable name, adding a period, and then adding the method call.
For example, the method upper
takes a string and returns a
new string with all uppercase letters. Instead of the function
syntax, upper(word)
, it uses the method syntax, word.upper()
.
This form of dot notation specifies the name of the method,
upper
, and the name of the string to apply the method to,
word
. The empty parentheses indicate that this method takes
no argument.
A method call is called an invocation; in this case, we
would say that we are invoking upper
on the
word
.
For example, there is a string method named find
that
searches for the position of one string within another:
In this example, we invoke find
on word
and
pass the letter we are looking for as a parameter.
The find
method can find substrings as well as characters:
>>> word.find('na')
2
It can also take as a second argument the index where it should start looking:
>>> word.find('na', 3)
4
One common task is to remove white space (spaces, tabs, or newlines)
from the beginning and end of a string using the strip
method:
Some methods, such as startswith
, return boolean values:
You will note that startswith
requires case to match, so
sometimes we’ll convert a line to lowercase using the lower
method before we do any checking:
In the last example, the method lower
is called. Then, we
use startswith
to see if the resulting lowercase string
starts with the letter “h”. As long as we are careful with the order, we
can make multiple method calls in a single expression.
Fix the following function. It should use the string method count
to count the number of times a double s (ss) appears in a word. There are 3 mistakes to fix.
- 0
- Incorrect! Both 'e' and 'b' are present in the string. Try again.
- 1
- Incorrect! There is only one 'b', but there are multiple e's as well. Try again.
- 2
- Incorrect! There are two e's, but there is a 'b' as well. Try again.
- 3
- Correct! There are two e's and one b, so added together, this will print "3".
11-9-9: What is printed by the following statements?
s = "let's go blue!"
print(s.count("e") + s.count("b"))
-
11-9-10: Match these common string methods with their function. Hint: many of the names of these methods are hints to what they do!
If you need help, try looking online for the effects of these methods.
- capitalize()
- Returns a copy of a string with its first character capitalized and the rest lowercased.
- count()
- Returns the number of non-overlapping occurrences of a substring in the range [start, end].
- endswith()
- Returns True if a string ends with the specified suffix. Otherwise, it returns False.
- find()
- Returns the lowest index in a string where a substring is found. An optional parameter restricts the search to a slice of the string.
- strip()
- Returns a copy of a string with the leading and trailing whitespace characters removed.
- upper()
- Returns a copy of a string with all characters converted to uppercase.