Python как найти последний символ в строке
Перейти к содержимому

Python как найти последний символ в строке

  • автор:

Архимед Python 19/20

Строка считывается со стандартного ввода функцией input() . Напомним, что для двух строк определа операция сложения (конкатенации), также определена операция умножения строки на число.

Строка состоит из последовательности символов. Узнать количество символов (длину строки) можно при помощи функции len :

>>> S = 'Hello' >>> print(len(S)) 5

Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.

Есть три формы срезов. Самая простая форма среза: взятие одного символа строки, а именно, S[i] — это срез, состоящий из одного символа, который имеет номер i , при этом считая, что нумерация начинается с числа 0. То есть если , то , , , , .

Номера символов в строке (а также в других структурах данных: списках, кортежах) называются индексом.

Если указать отрицательное значение индекса, то номер будет отсчитываться с конца, начиная с номера -1 . То есть , , , , .

Или в виде таблицы:

Строка S H e l l o
Индекс S[0] S[1] S[2] S[3] S[4]
Индекс S[-5] S[-4] S[-3] S[-2] S[-1]

Если же номер символа в срезе строки S больше либо равен len(S) , или меньше, чем -len(S) , то при обращении к этому символу строки произойдет ошибка IndexError: string index out of range .

Срез с двумя параметрами: S[a:b] возвращает подстроку из b-a символов, начиная с символа c индексом a , то есть до символа с индексом b, не включая его. Например, S[1:4]==’ell’ , то же самое получится если написать S[-4:-1] . Можно использовать как положительные, так и отрицательные индексы в одном срезе, например, S[1:-1] — это строка без первого и последнего символа (срез начинается с символа с индексом 1 и заканчиватеся индексом -1, не включая его).

При использовании такой формы среза ошибки IndexError никогда не возникает. Например, срез S[1:5] вернет строку ‘ello’ , таким же будет результат, если сделать второй индекс очень большим, например, S[1:100] (если в строке не более 100 символов).

Если опустить второй параметр (но поставить двоеточие), то срез берется до конца строки. Например, чтобы удалить из строки первый символ (его индекс равен 0, то есть взять срез, начиная с символа с индексом 1), то можно взять срез S[1:] , аналогично если опустиить первый параметр, то срез берется от начала строки. То есть удалить из строки последний символ можно при помощи среза S[:-1] . Срез S[:] совпадает с самой строкой S .

Если задать срез с тремя параметрами S[a:b:d] , то третий параметр задает шаг, как в случае с функцией range , то есть будут взяты символы с индексами a , a+d , a+2*d и т.д. При задании значения третьего параметра, равному 2, в срез попадет кажый второй символ, а если взять значение среза, равное -1 , то символы будут идти в обратном порядке.

Метод — это функция, применяемая к объекту, в данном случае — к строке. Метод вызывается в виде Имя_объекта.Имя_метода(параметры) . Например, S.find(«e») — это применение к строке S метода find с одним параметром «e» .

Метод find и rfind

Метод find находит в данной строке (к которой применяется метод) данную подстроку (которая передается в качестве параметра). Функция возвращает индекс первого вхождения искомой подстроки. Если же подстрока не найдена, то метод возвращает значение -1. Например:

>>> S = 'Hello' >>> print(S.find('e')) 1 >>> print(S.find('ll')) 2 >>> print(S.find('L')) -1

Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).

>>> S = 'Hello' >>> print(S.find('l')) 2 >>> print(S.rfind('l')) 3

Если вызвать метод find с тремя параметрами S.find(T, a, b) , то поиск будет осуществляться в срезе S[a:b] . Если указать только два параметра S.find(T, a) , то поиск будет осуществляться в срезе S[a:] , то есть начиная с символа с индексом a и до конца строки. Метод S.find(T, a, b) возращает индекс в строке S , а не индекс относительно

Метод replace заменяет все вхождения одной строки на другую. Формат: S.replace(old, new) — заменить в строке S все вхождения подстроки old на подстроку new . Пример:

>>> 'Hello'.replace('l', 'L') 'HeLLo'

Если методу replace задать еще один параметр: S.replace(old, new, count) , то заменены будут не все вхождения, а только не больше, чем первые count из них.

>>> 'Abrakadabra'.replace('a', 'A', 2) 'AbrAkAdabra'

Подсчитывает количество вхождений одной строки в другую строку. Простейшая форма вызова S.count(T) возвращает число вхождений строки T внутри строки S . При этом подсчитываются только непересекающиеся вхождения, например:

>>> 'Abracadabra'.count('a') 4 >>> ('a' * 100000).count('aa') 50000

При указании трех параметров , будет выполнен подсчет числа вхождений строки T в срез S[a:b] .

Как узнать последний символ строки в списке?

Подскажите, пожалуйста, как узнать последний символ определенной строки списка. Например, дан список list = [«aaab»,»aade»,»abez»] Как вывести последний символ элемента list[0] , чтобы получилось b То есть мне нужна конструкция по аналогии с Java list[0].charAt(list[0].length()-1)

Отслеживать
задан 22 окт 2019 в 20:06
144 1 1 золотой знак 1 1 серебряный знак 11 11 бронзовых знаков

так: list[0][-1] . PS не используйте зарезервированные слова в качестве имен переменных — после этого вы не сможете восполоьзоваться конструктором list() .

22 окт 2019 в 20:09

Да, list я использовал для примера. Спасибо большое за ответ, пробовал подобный вариант но с -1 не рассмотрел, затупил. А ради интереса, возможно как-то взять элемент отличный от 0 или -1? Ну например из середины

22 окт 2019 в 20:10
Вы можете выбрать любой элемент из списка в диапазоне: [0, len(list_)-1]
22 окт 2019 в 20:17

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Самый простой и красивый способ — обращение по отрицательному индексу, который помогает получать элементы в обратном порядке:

  • -1 — последний элемент
  • -2 — предпоследний элемент
  • .
items = ["aaab", "aade", "abez"] print(items[0][-1]) # b print(items[0][len(items[0]) - 1]) # b for x in items: print(x, x[-1], x[-2], x[-3], x[-4], sep=' | ') # aaab | b | a | a | a # aade | e | d | a | a # abez | z | e | b | a 

Самый первый и самый последний символы строки

1. Напишите программный код, который запрашивает у пользователя строку
(строка может быть произвольной длины) и выводит пользователю на экран
самый первый и самый последний символы строки.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Определить какой человек указан в списке раньше: самый старый или самый молодой
Известен возраст группы людей в списке. Какой человек указан в списке раньше: самый старый или.

Продублируйте первый и последний символы, чтобы длина строки была равна n
У редактора школьной газеты Кости опять проблемы. Авторов мало, тексты слишком короткие. Костя.

Первый и самый примитивный сервер и первый клиент POST запросов
Добрый вечер. Помогите, пожалуйста со следующей проблемой. Мне необходимо написать на питоне.

Функция удаляющая из масива самый первый и самый последний элемент
Написать программу на языке С++ для создания динамического массива A , заполнить массив с помощью.

1391 / 675 / 300
Регистрация: 05.09.2021
Сообщений: 1,155
Drag_ON_dream,

1 2 3
s = input('Enter string: ') print(f'The first character is ') print(f'The last character is ')

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Поменять местами самый первый элемент массива и самый большой
Вводится какой-нибудь массив, поменять местами самый первый элемент массива и самый большой

Самый самый самый простой пример рекурсии
приведите самый прост пример рекурсии)))void main(int k) < int n=10; k=n; k++; n=k; .

Вводится строка. Вывести самый первый символ строки
Примерно таким методом нужно вывести первый символ строки. Может кто нибудь кинет код? public.

Поменять местами первый и последний символы строки, а так же третий и десятый символы
Завтра экзамен по информатике, для допуска нужно сдать последнюю задачу, помогите пожалуйста ее.

Выведите последние три символа введенной строки

Выведите строки, содержащие две буквы «z», между которыми ровно три символа
3)Вам дана последовательность строк. Выведите строки, содержащие две буквы "z", между которыми.

Заменить последние три символа слов, имеющих выбранную длину на символ
Помогите пожалуйста с задачкой. Дана строка слов. Заменить последние три символа слов, имеющих.

Вывести первые три символа строки и последние три символа, если длина строки больше 5
Дана строка. Вывести первые три символа и последний три символа, если длина строки больше 5. Иначе.

Последние три символа преобразовать в строчные буквы и переместить внутрь строки
Создать строку размером не более 10 символов и последние три символа преобразовать в строчные буквы.

307 / 188 / 97
Регистрация: 01.05.2014
Сообщений: 519

l = str(input()) print(l[-3:])

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Распечатать последние 4 символа введенной строки
Распечатать последние 4 символа введенной строки.

Удалить последние три символа из строки
Доброго времени суток. Есть строка из куки. В конце каждого слова есть запятая (%2C). Как можно.

Вывести первые и последние три символа строки
Дана строка. Вывести первые три символа и последний три символа, если длина строки больше 5. Иначе.

Функция возвращающая первые и последние три символа строки
Решить поставленнуюзадачу с примененим функции. Описать функцию Count(S), возвращающую первые три.

Дана строка. Вывести первые три символа и последние три символа
Доброе утро, господа. Необходима Ваша помощь по решению этого вопроса, вроде как и не сложно, но в.

Удалить все строки, три последние символа которых – это цифры
Помогите написать программу суть которой — удаление всех строк которые заканчиваются 3мя цифрами

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *