В Python, как и во многих других языках, индексация начинается с нуля. Это относится и к строкам. Мне, как паскалисту, раньше было непонятно, зачем было так делать (ведь в Паскале индексация строк начинается с 1, а массив можно вообще начать с любого индекса, хоть с 0, хоть с 5).
Но так уж повелось. Поэтому в Python вот такой код:
hello = "Привет, МИР!"
print(hello[1])
выведет букву “р”, а не “П”, как могут подумать паскалисты или не программисты (кстати, паскалисты != не программисты, кто бы что об этом не думал)))
То есть получить доступ к символу можно, указав индекс символа строки. Правда, это будет доступ “только чтение”, потому что строки в Python нельзя изменять (в отличие от того же Паскаля).
Но почему же индекс начинается с нуля? Ведь более понятен именно паскалевский стиль, когда первый символ имеет первый номер. Логично, не так ли?
А дело в том, что в Паскале это НОМЕР символа, а в нечеловеческих языках типа С/С++ и в их надстройках типа Python - это СМЕЩЕНИЕ от начала строки. И если началом строки является первый символ, то указатель никуда смещать не надо. То есть смещение равно 0. Поэтому и индекс первого символа равен 0.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.