Skip to main content

Learn how to code with python: Lesson 2 - Working with text

Working with text
Working with text

In this lesson I show you how you can work with text. Text in programming lingo is also referred to as a string. And a string can be described as a group of characters. A character can be a letter, a number, a space, a comma, a point, a hash (#), etc.. So far, so good ...

Video



Explained in the video

In the video I talk about some common simple operations that can be done on strings. All operations are string methods that are available out of the box as part of the standard library of Python. I discuss only 6 of the many methods that are available. You can read up on more of them here: https://docs.python.org/3.6/library/stdtypes.html#str


String indexes

In the video I talk about "string positions" or indexes. Let me spell it out for you once more. Each character has a position in a string. This positions is identified or referenced by a number in an index. This index is a zero-based index.

For example:

string "ABCDEF"
index  012345

character A has index 0
character B has index 1
character C has index 2
character D has index 3
character E has index 4
character F has index 5


Find

I often use the find method on a string to check if it contains another string. For example:

"It's raining cats and dogs".find("cat")
will return:
13

And
"It's raining cats and dogs".find("mouse")
will return:
-1

So if the find method returns -1, then I know that the string does not contain the other string I was looking for.

From the python documentation:
str.find(sub[, start[, end]])Return the lowest index in the string where substring sub is found within the slice s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 if sub is not found.
Read the docs here: https://docs.python.org/3.5/library/stdtypes.html#str.find


Replace

String replacement is also a very useful and common operation. Here is an example:

"It's raining cats and dogs".replace("cats", "mice")
will return:
"It's raining mice and dogs"

From the python documentation:
str.replace(old, new[, count])Return a copy of the string with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.


Lower and upper

If you want to compare strings in a case insensitive manner, then it helps to transform both strings to all lower or all upper case characters. You will often use lower together with the find method to find matching strings regardless of the case.

Example:
"It's raining cats and dogs".find("Cat")
will return:
-1

While
"It's raining cats and dogs".lower().find("Cat".lower())
will return:
13

From the python documentation:
str.lower()Return a copy of the string with all the cased characters converted to lowercase.
str.upper()Return a copy of the string with all the cased characters converted to uppercase. Note that str.upper().isupper() might be False if s contains uncased characters or if the Unicode category of the resulting character(s) is not “Lu” (Letter, uppercase), but e.g. “Lt” (Letter, titlecase).
Read about lower in the docs here: https://docs.python.org/3.6/library/stdtypes.html#str.lower
Read about upper in the docs here: https://docs.python.org/3.6/library/stdtypes.html#str.upper


Format

Sometimes you want to add to a string later, for instance when you are constructing a url to call:

"www.davetromp.net/page{}".format("1")
will return:
"www.davetromp.net/page1"

and

"www.davetromp.net/page{}".format("1234")
will return:
"www.davetromp.net/page1234"

From the python documentation:
str.format(*args, **kwargs)Perform a string formatting operation. The string on which this method is called can contain literal text or replacement fields delimited by braces {}. Each replacement field contains either the numeric index of a positional argument, or the name of a keyword argument. Returns a copy of the string where each replacement field is replaced with the string value of the corresponding argument.
Read the docs here: https://docs.python.org/3.6/library/stdtypes.html#str.format


Split

Strings can be split up in many ways, but using the split method is the most obvious one.

Example:

"It's raining cats and dogs".split()
will return:
["It's", 'raining', 'cats', 'and', 'dogs']
This is a list of the words in the sentence. By default the split method will split the string on white spaces. This way we could process a sentence word by word.
To get the third word
"It's raining cats and dogs".split()[2]

From the python documentation:
str.split(sep=None, maxsplit=-1)Return a list of the words in the string, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done (thus, the list will have at most maxsplit+1 elements). If maxsplit is not specified or -1, then there is no limit on the number of splits (all possible splits are made).
Read the docs here: https://docs.python.org/3.5/library/stdtypes.html?highlight=split#str.split


Please share this article if you enjoyed it. I appreciate it!

Popular posts from this blog

Invest like a trader

Here is my book: "Invest like a trader". I finally decided to create this book based on my blog and experience investing, trading and coding. It is an introduction to my view on investing. For the next few days you can get a free copy on Amazon: https://amzn.to/2JjwQqj

This book is for you if you are an investor looking to learn a more trading-like approach to investing. Buy and hold investing has become buy and pray investing, with countless sleepless nights. A more trading-like approach to investing puts you back into control of your investments and it can be a lot of fun. After reading this book you should be more able to build and grow your investment account consistently.


Link to the e-book: https://amzn.to/2JjwQqj
Let me know what you think after reading the book. You can contact me via email or on social media. Even better, you can leave a review on Amazon.

Why I am a trader and investor and why you might wanna be one too

I am a coder by day and trader by night! Coding is my day job. I am fully aware that only having a job will not allow me to provide for my family and myself consistently in the long run. This is because most of the western societies are setup in a way to be more and more disadvantageous towards the working middle class. I do not need to be a billionaire to be happy, but our society is becoming more and more binary. It seems that one can either be rich or poor, in which case I opt to be rich, or at least hedge myself against being poor. Trading and investing are my hedge against this trend.

The super rich and us Below are two videos from the BBC documentary "The Super Rich and Us". It clearly illustrates and explains the polarization of wealth distribution in our current society. Here is a catchy quote from the documentary:

There are the haves, the haves not and the haves yachts! But actually we seem to be heading for a society where there are only haves not and haves yachts

Why I buy Gold and Silver

I own crypto currencies, because I have come to the conclusion that money as we know it today is no longer sustainable. I have come to this conclusion during the crisis of 2008. At that time I had the intuition / the gut feeling something was wrong not only with our financial system, but more specifically with our money. It took a few years of researching and investigating until I figured it out. The thing is, part of me did not want to believe it was true. And for a long time I did not act upon the intuition and knowledge I had. That changed last year when I decided to put my money where my mouth is and I started to accumulate crypto currencies. Cryptos align perfectly with my expertises: coding and trading. So I went for it... And with success.

Now I want to diversify my holdings more by adding Gold and Silver to it. I buy Gold and Silver as a hedge or insurance against the undwindled money printing of all of the governments / central banks of the world. Money, or actually, currenc…