## Slicing text

Here's a few lines of code that might seem strange at first:

``````    "hello"[0]
"hello"[1]
"hello"[2]
"hello"[3]
"hello"[4]
``````

What does it do? Let's run it in the console to see:

The code pulls apart the string `"hello"` character by character. When the number in the square brackets (`[]`) increases, we grab the subsequent character from the string.

### Letters versus characters

Notice we talked about a string's characters, rather than its letters above. "Character" is just a more general way to refer to the individual pieces of a string; whereas "a letter" usually refers to things in the alphabet (A-Z), a character can be a letter, a number, a symbol, a punctuation mark .. anything!

## String positions

The numbers in the square brackets (`[]`) in the code above refer to the string's indices. Each string is made up of characters, and each character has a position.

For example, the string `"My phone"` has these characters and positions:

Spaces and punctuation have positions too, not just letters.

In general, to find a character's position, start at 0 and count upwards until you reach the character.

#### Why start counting at 0?

Computer scientists tend to count from 0, rather than 1. This has to do with the way computers store information, and it used to be a handy tool for software engineers, but it's become less important as computers have become more powerful and reliable. Now, we're still counting from 0 because that's what engineers in the past did, and many systems are programmed around how things used to be.

## Syntax

When we put a number inside brackets next to a string, like `"hello"[2]`, we're asking Python to "find and return the character in position 2 of the 'hello' string."

If you try to look up a position that doesn't exist in the string – say, position 99 of "hello" – you'll get an `IndexError`. That's Python's way of saying "I went to the 99th index of "hello" but didn't find anything – help!"

If you forget to put a number inside the square brackets, Python will also become confused and return a `ParseError`, which means "I couldn't understand, or parse through, what you wanted me to do."

## Challenge

Write code that pulls the first letter from your name.

For example, if my name were "Trinket", I'd want to write code that returns a `T` from `"Trinket"`, and if my name were "Ada", I'd want to return an `A` from `"Ada"`.