# FAQ: Learn Python – Strings & Console Output – Access by Index

This community-built FAQ covers the “Access by Index” exercise in Codecademy’s lessons on Python.

## Join the Discussion. We Want to Hear From You!

Agree with a comment or answer? Like () to up-vote the contribution!

Want to take the conversation in a totally different direction? Join our wider discussions.

Found a bug? Report it!

Have a question about your account, billing, Pro, or Pro Intensive? Reach out to our support team!

None of the above? Find out where to ask other questions here!

## Other FAQs

• This list will contain other frequently asked questions that aren’t quite as popular as the ones above.
• This FAQ is built and maintained by you, the Codecademy community – help yourself and other learners like you by contributing!

Not seeing your question? It may still have been asked before – try searching for it by clicking the spyglass icon () in the top-right of this page. Still can’t find it? Ask it below by hitting the reply button below this post ().

6 posts were split to a new topic: How do I Use String Indexes?

A post was split to a new topic: Accesing by index

On line 13, assign the variable `fifth_letter` equal to the fifth letter of the string “MONTY”.

Remember that the fifth letter is not at index 5. Start counting your indices from zero.

This is what was on the right side, to put the code:

“”"
The string “PYTHON” has six characters,
numbered 0 to 5, as shown below:

±–±--±–±--±–±--+
| P | Y | T | H | O | N |
±–±--±–±--±–±--+
0 1 2 3 4 5

So if you wanted “Y”, you could just type
“PYTHON”[1] (always start counting from 0!)
“”"
fifth_letter =

print fifth_letter

This, i felt was not asking the same things.

P.S
i got the answer correctly “MONTY”[4]

1 Like

what do you mean? That the example doesn’t match what is asked in the instructions?

Correct, I had the same issue. The example given: Notice that in the first “cat” example we are calling the 0th letter of “cat” and getting “c” in return. This is because in Python indices begin counting at 0. Therefore, in the string “cats”, the first letter, “c”, is at the 0th index and the last letter, “s”, is at the 3rd index. In this example they state that CATS would be C=0 A=1 T=2 and S=3. Then the question asks US to solve the fifth letter in the word MONTY. Following the same information given then the word MONTY should go as followed: M=0 O=1 N=2 T=3 and Y=4. MONTY does not have a fifth letter. Yet when you ask for a hint it tells you the letter you want is “y” which should be 4. There is no fifth letter yet it is asking to solve for the fifth letter. You can put in 4 and still get it correct but its still worded wrong.

3 Likes

fifth letter is using the human counting system, (so starting at one). So you have to do the conversion from 5th letter to 4th index.

if the instructions would have said: 5th index, yea, that would have been problematic.

2 Likes

Agreed, You have to read their instructions carefully, at first I was confused as well between letters and indexes.

Quick question - when and why do we need to access by index?
Why is it relevant?
When would I use it in python coding?
Seems to me logical that if I want a certain letter, I will just code print(“y”)

but what if its a word entered by the user? Or coming from the database?

these lessons teach a concept, and keep the example simple. You will see this more.

So if we are storing a character from a string into this variable, then will the datatype of the variable be a character or will it still be a string?

Js doesn’t have a character data type:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures

you could also use `typeof` to determine the type.

This bug is still here. MONTY doesn’t have a 5th letter in a system indexes from 0, and if you use the “correct” answer (“MONTY”[5]) you will get an error. Moreover, it tells you the correct answer is “Y”, but the only way to get that answer is to use your answer.

The problem is set up incorrectly. Very frustrating for such an elementary level question.

that is because its not a bug. Its even mentioned in the exercise:

Remember that the fifth letter is not at index 5. Start counting your indices from zero.

MONTY has five letters.

If you use index zero, the fifth letter is null.

M=0
O=1
N=2
T=3
Y=4

If the answer is “Y” then they are looking for the fourth letter.

The example uses the word “5th” to refer to the letter placed in the number five spot when counting from zero (i.e. refers to “N” as the fifth letter in PYTHON, where “p” is in 0 place). So “fifth” is either used in two ways in the exercise or the question and answer don’t match.

Neither of those situations is desirable.

exactly, when you say `monty` has letters, you start counting at 1 as well. While indexes starts counting at zero

This exercise deliberately wants you to make aware between “human” and “computer” counting

Absolutely not, when counting letters we start one. The 5th spot/letter is the 4th index/position of the list.

That is not how it is explained in the example. In the example, the fifth letter of “PYTHON” is said to be “N”.

I am not trying to put someone in their place about coding but to explain that the question is not well-formed.

Either “N” is the fifth letter of PYTHON and the fifth letter of MONTY is null, or “N” is the sixth letter of PYTHON and the fifth letter of MONTY is Y.

The fifth letter of PYTHON cannot be “N” while the fifth letter of MONTY is “Y”. That makes no sense.

I tried to make my case, which clearly didn’t work.

The far more important is to understand how indexes work. That is what matters

Hey, thanks so much for removing the poor example in the course. The text which said that “N” is the fifth character in PYTHON is no longer there, nor is the PYTHON example. There is no more contradiction in the course.

Appreciate it!