Python Strings for Beginners
Tags: python, beginners, strings
Published: 2020-09-30 03:42:50

Strings are an integral data type used in multiple programming languages, including Python. You may or may not have heard of strings. Don’t worry, I’m here to help.

We’re going to go over:

- What strings are

- How to create strings

- How to access characters in a string

- How to find the length of a string

- How to check if a character(s) is in a string

Let’s get started!

# What are Python Strings?
Strings in Python are characters enclosed in quotes. That’s it. You can use single, double, or triple quotes! More on that in the next section.

Each character in the string is given a number called an “index” to represent its position within the string. The first character’s index is zero, the second character’s index is one, and so on.

Strings are immutable, which means you cannot edit strings once they’re created. In other words, an entire new string is created every time you add or delete a character within a string.

# Creating Python Strings
There are three ways to create a string in Python. To create a string in Python, you surround the characters that make up the string using one the following.
You can use single quotes.
``` python
'Hello World'
```

You can also use double quotes.
``` python
"Hello World"
```

Lastly, you can use triple quotes to create a multi-line string.
``` python
"""Hello
World"""
```

# Accessing Characters in a String
As you work with strings, you may want to access one or multiple characters in a string. You can do so by using the index characteristic of strings.

To access one character in a string, use a technique called “indexing.” The format is as follows: the string variable is followed by square brackets that enclose the index of the character we’re trying to access. 

Let’s say we have a string called `name` that holds the value `Python`, and we want to access the first letter. We do that by:
``` python
name = "Python"
print(name[0])
```
This will return a new string with the result `P`.
 
To access more than one character in a string, use a technique called “slicing.” The format is the same as indexing, except you can include one to two numbers separated by a colon within the square brackets. The two numbers represent a slicing range; the first number represents the beginning index, and the second number represents the ending index. Both numbers can be positive or negative. Positive numbers represent the indexing of a string of left to right, whereas negative numbers represent the indexing of a string from right to left. 

The following is a summary of the possible representations of how to slice a string:

- **string[beginningIndex:endIndex]** returns the beginningIndex and up to but not including endIndex

- **string[:endIndex]** returns the beginning of the string to but not including the endIndex

- **string[beginningIndex:]** returns from the beginningIndex to the end of the string

Let’s use the same example from before, but say we want to access the first three letters in the string called `name`.
``` python
name = "Python"
print(name[0:3])
```
This will return a new string with the result `Pyt`.

Two things to keep in mind is that:

- If you include an index out of range, you’ll get an `IndexError`

- If you include a non-Integer value as an index, you’ll get a `TypeError`.

# Adding Strings Together
Adding strings together in Python is called concatenation. To concatenate strings together in Python, use the plus operator:
``` python
print("Hello " + "World")
```
This will create a string with the value `Hello World`.

# Finding the Length of a String
To find the length of a string, use Python’s built-in len() function:

``` python
print(len("Python"))
```
This returns 6.

# Checking if a Character or Substring Exists in a String
To check if a character or substring (part of the string) exists in a string, use the `in` keyword that’s built into Python. This will return `True` or `False`.

For example, if you want to see if “World” exists in “Hello World”:
``` python
print("World" in "Hello World")
```
This returns `True`.

You can also iterate through a string and access each character. The most efficient way is to use a for loop. There are two ways to do this.

- Use the `in` keyword within the for loop:
``` python
name = "Python"
for i in name:
    print(i)
```
This code snippet will access and print each letter in the string from beginning to end. It outputs:
``` python
P
y
t
h
o
n
```


- Use the `range()` function in the for loop:
``` python
name = "Python"
for i in range(len(name)):
    print(name[i])
```
This code snippet will access and print each letter in the string from beginning to end with a range of 0 to 5. It also outputs:
``` python
P
y
t
h
o
n
```

# Conclusion
There’s much more you can do with strings. Python has many built-in functions, like `lower()`, `upper()`, and `split()`. You can format your strings using something called escape sequences or the built-in `format()` function. So much fun!

Keep learning and comment below if you have any questions or comments!