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

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

перейти к содержанию

В этом посте мы обсудим, как найти индекс первого вхождения символа в строку в Python.

1. Использование

find() функция

Стандартным решением для поиска позиции символа в строке является использование find() функция. Возвращает индекс первого вхождения в строку, где найден символ. Он возвращается -1 когда персонаж не найден.

1

2

3

4

5

6

7

8

9

10

11

12

if __name__ == ‘__main__’:

 

    s = «Techie»

    ch = ‘e’

 

    index = s.find(ch)

 

    if index != -1:

        print(f»Found character ‘{ch}’ at index {index}»)    # Найден символ ‘e’ в индексе 1

    else:

        print(«Character not found»)

 

Скачать  Выполнить код

2.

Использование index() функция

В качестве альтернативы вы можете использовать

index() функция, похожая на find() функционировать, но повышает ValueError когда персонаж не найден.

1

2

3

4

5

6

7

8

9

10

11

if __name__ == ‘__main__’:

 

    s = «Techie»

    ch = ‘e’

 

    try:

        index = s.index(ch)

        print(f»Found character ‘{ch}’ at index {index}»)  # Найден символ ‘e’ в индексе 1

    except:

        print(«Character not found»)

 

Скачать  Выполнить код

3. Использование

enumerate() функция

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

1

2

3

4

5

6

7

8

if __name__ == ‘__main__’:

 

    s = «Techie»

    ch = ‘e’

 

    indexes = [i for i, c in enumerate(s) if c == ch]

    print(f»Found character ‘{ch}’ at index {indexes}»)  # Найден символ ‘e’ по индексу [1, 5]

 

Скачать  Выполнить код

4. Использование

more_itertools.locate() функция

Наконец, вы можете использовать locate() функцию от more_itertools Модуль Python для поиска символов в строке. Он возвращает индекс каждого символа в строке, для которой возвращается указанный предикат. True.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import more_itertools

 

if __name__ == ‘__main__’:

 

    s = «Techie»

    ch = ‘e’

 

    index = next(more_itertools. locate(s, lambda x: x == ch))

 

    if index != -1:

        print(f»Found character ‘{ch}’ at index {index}»)    # Найден символ ‘e’ в индексе 1

    else:

        print(«Character not found»)

 

Скачать код

Это все, что касается поиска индекса символа в строке в Python.

Оценить этот пост

Средний рейтинг 4.97/5. Подсчет голосов: 31

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂


строки — Как я могу проверить есть ли в строке python определенные символы

Вопрос задан

Изменён 3 месяца назад

Просмотрен 21k раз

Мне необходимо проверить строку 'gkegfemeeуууее&@(' на то, что есть ли в ей только русские и латинские символы, без учета регистра, если в строке есть какие-то прочие символы — тогда ответ должен быть True, иначе False

Сделать это необходимо как можно короче, но чтобы при этом для меня было понятно, использование регулярок — запрещено.

-> Указывает на начало строки
  • [] -> Тут указывает список из разрешённых символов (должно быть что-то из списка)
  • a-z -> Все латинские символы в нижнем регистре
  • A-Z -> Все латинские символы в верхнем регистре
  • а-я -> Все символы кириллицы в нижнем регистре
  • А-Я -> Все символы кириллицы в верхнем регистре
  • ёЁ -> Особенные символы русского языка 🙂
  • + -> Указывает на то, что строка продолжается и может иметь больше одного символа
  • $ -> Указываем на конец строки
  • Пример на regex101

    5

    Вроде достаточно коротко и без регулярок.

    check = lambda s: not all('a'<=x<='z' or 'а'<=x<='я' for x in s.lower())
    print(check('gkegfemeeуууее&@('))
    

    думаю самый простой и короткий вариант будет такой:

    print('gkegfemeeуууее&@('. isalpha())  # False
    

    str.isalpha() возвращает True если все символы в строке алфавитные, и в строке есть как минимум один символ. В противном случае возвращает False.

    2

    Ещё как вариант проходиться циклом по строке и смотреть входит ли числовое представление символа в заданные диапазоны под латинские символы и кириллицу

    # LATIN_RANGE = (65, 122)
    # CIRILLIC_RANGE = (1040, 1103)
    print(not all(65 <= ord(s) <= 122 or 1040 <= ord(s) <= 1103 for s in "gkegfemeeуууее&@("))
    
    return 'gkegfemeeуууее&@('.isalpha() 
    

    Для данной задачи идеально подойдёт встроенная функция isalpha(), которая определяет являются ли все символы в строке буквами, причем русские буквы тоже распознаются корректно.

    Как тут выше все сложно объяснено)) Все гораздо проще:

    \d — это регулярка, проверяет строку на наличие хотя бы 1 цифры

    import re
    text = 'привет 3'
    if re.search('\d', text): # тут или True или False на выходе
       print('цифры есть')
    else:
       print('цифр нет')
    
    1

    Зарегистрируйтесь или войдите

    Регистрация через Google

    Регистрация через Facebook

    Регистрация через почту

    Отправить без регистрации

    Почта

    Необходима, но никому не показывается

    Отправить без регистрации

    Почта

    Необходима, но никому не показывается

    By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

    Проверить строку на наличие определенного символа в Python

    В этом посте мы обсудим, как проверить строку на наличие определенного символа в Python.

    1. Использование

    в операторе

    Pythonic, быстрый способ проверки определенного символа в строке использует оператор в . Он возвращает True , если символ найден в строке, и False в противном случае.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    if __name__ == ‘__main__’:

     

        s = «techiedelight.com»

        ch = ‘.’

     

        if ch in s:

            print(«Символ найден»)

        else:

            print(«Символ не найден») 90 003

     

    Загрузить Код запуска

     
    в 9Оператор 0006 реализует встроенную функцию __contains__ . Не рекомендуется звонить напрямую.

    1

    2

    3

    4

    5

    6

    7

    8

    9 9 0003

    10

    if __name__ == '__main__':

     

        s = "techiedelight.com"

        ch = '.'

     

        if s.__contains__(ch):

            print("Символ найден")

        else:

            print("Символ не найден")

     

    Загрузить Запустить код

    2. Использование функции

    str.find()

    Другим распространенным подходом к поиску символа в строке является использование функции str.find() . Это возвращает индекс первого вхождения символа в строку и -1, если символ не найден.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    if __name__ == '__main__':

     

        s = "techiedelight. com"

        ch = '.'

     

        if s.find(ch) != -1:

            print("Символ найден")

        else:

            print("Char актер не найден")

     

    Загрузить  Выполнить код

    3. Использование регулярных выражений

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

    1

    2

    3

    4

    5

    6

    7

    8

    9 9 0003

    10

    11

    12

    13

    import re

     

    if __name__ == '__main__':

     

        s = "techiedelight.com"

     

        pattern = re.compile(r'.')

     

        if pattern.findall(s):

            print("Символ найден")

    900 02     else:

            print("Символ не найден")

     

    Загрузить  Выполнить код

    Вот и все, что нужно для проверки строки на наличие определенного символа в Python.

    Оценить пост

    Средняя оценка 4.59/5. Количество голосов: 37

    Голосов пока нет! Будьте первым, кто оценит этот пост.

    Сожалеем, что этот пост не был вам полезен!

    Расскажите, как мы можем улучшить этот пост?

    Спасибо за внимание.

    Пожалуйста, используйте наш онлайн-компилятор для публикации кода в комментариях с использованием C, C++, Java, Python, JavaScript, C#, PHP и многих других популярных языков программирования.

    Нравится нам? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂


    Проверить, есть ли в строке символ в Python

    следующий → ← предыдущая

    Одной из наиболее частых операций в каждом языке программирования является определение, содержит ли заданная строка подстроку. Python имеет множество методов для определения того, содержит ли данная строка символ. Оператор «in» Python, который служит инструментом для операций сравнения, — это самый быстрый и простой способ определить, содержит ли строка Python символ. Проверка того, содержит ли строка подстроку, также выигрывает от использования других функций Python, таких как find(), index(), count() и других.

    Использование оператора "in" Python

    Оператор «in» в Python — это самый быстрый и простой способ определить, содержит ли строка подстроку или нет. Если в строке есть символы, эта операция возвращает логическое значение true; в противном случае он возвращает false.

    Код

    # Программа на Python, показывающая, как использовать оператор in для проверки наличия в строке подстроки # Создание строки str="Учебник по Python" print("Строка 'tut' присутствует в строке: ", "Tut" в строке)

    Вывод:

    Строка 'tut' присутствует в строке: True
     

    Если строка, заданная в качестве левого аргумента, включена в строку, заданную в качестве правого аргумента, оператор "in" возвращает True. Он принимает два параметра, по одному с каждой стороны. Оператор «in» в Python обрабатывает прописные и строчные буквы отдельно, поскольку это оператор с учетом регистра.

    Использование функции __contains__()

    Функция __contains__() класса String языка Python также позволяет определить, содержит ли заданная строка подстроку. Операция Python "in" вызывает метод __contains__() при неявном использовании. Когда объект класса появляется справа от операторов "in" и "not in", поведение определяется методом __contains__. Хотя мы можем, мы решили не использовать этот метод явно. Хотя функции с подчеркиванием в качестве первого символа считаются семантически закрытыми, рекомендуется использовать операторы «in» для удобства чтения.

    Код

    # Программа на Python, показывающая, как использовать метод __contain__ для проверки наличия в строке подстроки # Создание строки string = "Учебник по Python" print("Строка 'tut' присутствует в строке: ", string.__contains__('Tut'))

    Вывод:

    Строка 'tut' присутствует в строке: True
     

    Использование метода Python str.

    find()

    Вы также можете использовать метод string.find(). Функция find() определяет, существует ли подстрока в данной строке. Если он находит, функция find() возвращает -1; в противном случае он дает начальный индекс подстроки внутри строки.

    Код

    # Программа Python для поиска символа в строке и получения его индекса # Создание строки string = "Учебник по Python" индекс = строка.найти('Т') если индекс != -1: print("Символ 'T' присутствует в строке по адресу: ", index) еще: print('Этого символа нет в строке')

    Вывод:

    Символ 'T' присутствует в строке по адресу: 7
     

    Этот подход приемлем; однако использование str.find() — это менее Pythonic способ выполнить эту задачу. Хотя он длиннее и несколько запутаннее, он все же выполняет свою задачу.

    Использование метода str.count()

    Используйте функцию count() Python, если вы хотите подсчитать экземпляры определенной подстроки в строке.

    Оставить комментарий

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

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

    © 2019 Штирлиц Сеть печатных салонов в Перми

    Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.