Архив метки: Python

Лучший способ изучить Python (пошаговое руководство 2020 года). Часть 1

Python — очень популярный язык.

Это также один из языков, который мы рекомендуем для начинающих.

Но как вы изучаете этот язык?

Лучший способ выучить Python — это понять общую картину всего, что вам нужно выучить, прежде чем погрузиться и начать учиться.

В этой серии статей мы делим путь изучения Python на 6 уровней. Более подробный онлайн-курс по программированию на Python 3  можно пройти в Shultais Education. С 2019 года курс «читается» студентам Московского университета экономики и права им. Витте на специальностях «Прикладная информатика» и «Бизнес-информатика».

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

Наши статьи посвящены тому, чтобы вы были компетентным и всесторонним программистом, чтобы вы могли легко устроиться на работу в любую техническую компанию, которую вы выберете.

Но не волнуйтесь, вам не нужно пройти весь путь до уровня 6, чтобы получить свою первую работу.

Давайте начнем.

 

Уровень 0: Начало

Это уровень, с которого вы начинаете, если вы абсолютный новичок.

И под абсолютным новичком мы имеем в виду кого-то, кто никогда ранее не программировал на Python или любом другом языке программирования в этом отношении.

Если вы переходите с другого языка программирования, вам следует перейти к уровню 1.

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

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

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

Итак, каковы некоторые из этих общих концепций программирования, о которых мы говорим?

Некоторые из этих фундаментальных понятий — это переменные, типы данных, операции, функции, условные выражения и циклы.

Если вы понимаете, что это за понятия, переходите к уровню 1.

В противном случае позвольте мне дать вам очень краткое введение о том, что означают эти понятия.

 

Переменные

Переменные по сути являются хранилищем данных в вашей программе.

Точнее, это способ дать имя для данных для последующего использования.

Давайте посмотрим на пример.

# переменные

msg = "Hello World!"

print(msg)

# здесь код выведет на экран Hello World!

 

В приведенном выше фрагменте Python мы определяем переменную msg, в которой хранится значение Hello World!

Это позволяет нам позже напечатать Hello World! на экране, просто используя имя переменной, которая хранит это значение, вместо того, чтобы вводить значение Hello World! каждый раз, когда мы хотим использовать это.

 

Типы данных

Мы говорили о переменных как хранилище данных, теперь давайте поговорим о данных.

В Python данные имеют типы.

Например, в приведенном выше фрагменте кода данные Hello World! имеет определенный тип, который Python (и другие языки программирования) называют строкой.

Строка это просто последовательность символов.

Но строки не единственный тип данных в Python, также есть целые числа, числа с плавающей запятой, логические значения, списки, кортежи и словари.

К концу уровня 0 вы должны освоить эти типы данных и понять, когда (и как) использовать их в своей программе.

 

Операции

Операции — это то, как вы манипулируете и изменяете данные в вашей программе.

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

Это просто жизненный цикл любой программы.

В Python и во всех языках программирования существуют как минимум арифметические , сравнительные и логические операции.

# пример арифметической операции

x = 5 + 2



# пример операции сравнения

y = 3 > 4



# пример логической операции

z = True or False

 

Условия

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

Условные операторы, использующие if , if else или elsif else, дают вам эту возможность.

Вот пример оператора if-else в Python.

>>> if 3 > 5:

...   print('3 больше 5')

... else:

...   print('3 меньше 5')

...

3 меньше 5

 

Функции

Функция по сути является блоком кода Python, который запускается только при вызове.

Вы можете передавать параметры в функцию в качестве входных данных, а функция может возвращать данные в качестве выходных данных.

В Python вы определяете функцию, используя ключевое слово def.

Вот пример программы hello world, использующей функцию say_hello

def say_hello(msg):

  # это и есть функция

  # msg это входной параметр

  print(f'hello {msg}')



# вызов функции say_hello

say_hello('world')



# вывод:

# hello world

 

Так что это был пример фундаментальных понятий, которые вы должны изучить на этом уровне.

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

Если вы хотите быть хорошим программистом, вам не только необходимо читать книги или посещаете курсы по Python 3, вам нужно попрактиковаться в решении проблем и начать решать простые проблемы с помощью Python.

Мы не можем не подчеркнуть важность овладения уровнем 0.

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

Так что, хотя это уровень 0, не принимайте это всерьез.

 

Продолжение:



2020-04-17T14:13:46
Python

Диапазон в Python

Тип range в Python генерирует последовательность целых чисел, определяя начальную и конечную точку диапазона. Обычно используется с циклом for в Python для итерации по последовательности чисел.

range() работает по-разному в Python 2 и 3.

В Python 2 есть две функции, которые позволяют генерировать последовательность целых чисел, rangeи xrange. Эти функции очень похожи, главное отличие в том, что range возвращает список и xrange возвращает объект xrange.

В Python 3 функция xrange была удалена, а функция range ведет себя подобно xrange в Python 2. range в Python 3 — это не функция, а тип, представляющий неизменяемую последовательность чисел.

В этой статье мы рассмотрим основы типа range в Python 3.

 

Синтаксис range() в Python

range принимает следующие формы:

range(stop)

range(start, stop[, step])

Аргументы, предоставляемые range, должны быть целыми числами. Плавающие числа и другие типы не допускаются.

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

 

range(stop) в Python

Когда предоставлен только один аргумент, range возвращает последовательность чисел, увеличивается на 1, начиная с 0 и заканчивая — 1.

Вот тип диапазона в действии:

for i in range(5):

    print(i)

 

Сгенерированная последовательность чисел начинается с 0 и заканчивается на 4 (5-1):

0

1

2

3

4

 

Если аргумент равен 0 или отрицательное целое число, range возвращает пустую последовательность:

print(list(range(-5)))

 

Мы конвертируем объект range в список, потому что range выполняет ленивую оценку целочисленной последовательности. На выходе получается пустой список:

[]

 

range(start, stop) в Python

Когда предусмотрены два аргумента, range возвращает последовательность чисел, увеличивается на 1, начиная с start к stop — 1.

Вот пример:

for i in range(3, 5):

    print(i)

 

3

4

 

Аргумент stop должен быть больше start. В противном случае последовательность будет пуста:

print(list(range(5, 3)))

 

[]

 

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

print(list(range(-5, -3)))

 

[-5, -4]

 

print(list(range(-3, 0)))

 

[-3, -2, -1]

 

range(start, stop, step) в Python

Когда задано три аргумента, range возвращает последовательность чисел, увеличиваются или уменьшаются на step, начиная с start к stop — 1.

Если step положительный, range возвращает последовательность, которая увеличивается:

for i in range(0, 26, 5):

    print(i)

 

0

5

10

15

20

25

 

При увеличении аргумента stop должен быть больше чем start. В противном случае последовательность пуста.

Если step отрицательный, то range возвращает последовательность, которая уменьшается:

for i in range(20, 4, -5):

    print(i)

 

20

15

10

5

 

При уменьшении аргумента stop должен быть меньше чем start. В противном случае последовательность пуста.

Если step равно 0, вызывается исключение ValueError:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: range() arg 3 must not be zero

 

Вывод

Тип range в Python позволяет генерировать последовательность целых чисел. В основном используется в циклах for в Python.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-02-29T16:33:12
Python

Основы Python. Как печатать на Python?

При распечатке чего-либо с использованием Python довольно часто допускают ошибки, если вы новичок в написании сценариев Python.

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

Итак, в этой статье мы объясним, как напечатать что-то на Python, и перечислим некоторые распространенные ошибки, которых вы можете избежать.

 

Как печатать на Python

По сути, это то, как вы вызываете функцию печати в Python:

print()

 

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

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

print ("Я программист")

 

Как видите, вы должны будете передавать строковые значения в кавычках (обычно одинарные или двойные).

Лучше использовать двойные кавычки, потому что вы можете использовать одинарные кавычки в строке, поэтому во избежание путаницы и ошибок предпочтительнее использовать двойные кавычки.

Согласно технической документации, синтаксис для использования функции печати:

 print(*objects, sep=' ', end='n', file=sys.stdout, flush=True)

 

Здесь возможные параметры/аргументы:

  • *objects  — Вы можете иметь еще один объект
  • sep = » — относится к параметру разделителя
  • end = ‘ n’ — относится к конечному параметру
  • file = sys.stdout — файл в режиме записи, который печатает строку внутри него
  • flush = True — помогает очистить внутренний буфер

Ну, вот как вы печатаете что-то на Python — легко, правда?

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

 

1. Передача объектов с функцией print

Давайте рассмотрим простой пример:

a = 2

print ("Значение а равно", a)

 

Выход для этого будет:

Значение а равно 2

 

Аналогично, вы можете расширить ту же программу другой переменной и распечатать ее, используя функцию печати следующим образом:

a = 2

print ("Значение а равно", a)

b = a

print ("a =",b,"= b")

 

Выход будет такой:

Значение а равно 2

a = 2 = b

 

Здесь, в приведенном выше примере, вы можете заметить, что при разделении объектов, которые вы передаете, в функции печати с помощью (запятая), которая автоматически добавляет пробел в выводе, также известный как функция мягкого пространства.

Но что, если вам не нужно пространство между ними или вы хотите отформатировать вывод — что еще вы можете сделать?

Не беспокойтесь, вы можете использовать разделитель и конечный параметр для достижения этой цели. Давайте посмотрим на это ниже.

 

2. Печать с использованием разделителя в Python

Аргумент separator ( sep = ‘separator’ ) в Python помогает форматировать вывод и потенциально удалять функцию программного пространства, как упомянуто выше.

Вот что вы должны сделать:

a = 2

print ("Значение а равно",a,sep='')

 

Таким образом, когда вы добавляете sep = » в качестве другого аргумента в функции печати, он отключает функцию программного пространства и вывод будет выглядеть следующим образом:

Значение а равно2

 

Как вы можете заметить, после строки и цифры 2 нет места.

Разделители также могут пригодиться для печати дат, вот как это можно сделать:

print('14','02','2020', sep='-')

 

Выход для этого будет:

14-02-2020

 

Полезно, правда? Точно так же вы можете использовать параметр разделителя для дальнейшего форматирования вывода. Теперь, в дополнение к разделителю, вы также можете использовать параметр end, чтобы напечатать следующий вывод в новой строке.

 

3. Печать с использованием разделителя и конечного параметра

Стоит отметить, что параметр end помогает указать, что печатать в конце. Другими словами, он вводит новую строку для следующего вывода.

Вот пример кода для этого:

print('14','02','2020', sep='-', end='nnn')

print("Привет!")

 

Как вы можете заметить, мы добавили три новые строки в конце первого вывода. Итак, вывод выглядит так:

12-02-2020





Привет!

 

Позвольте нам попробовать что-то еще вместо добавления трех новых строк. Взглянем:

print('14','02','2020', sep='-', end='nto the future')

print("Привет!")

 

Вывод будет такой:

14-02-2020

в будущееПривет!

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

 

4. Печать с параметром файла

Если вы знаете об операциях файлового ввода-вывода , вы можете легко передать параметр файла с помощью функции печати следующим образом:

print("Это пример строки", file = sourceFile)

 

Вы также можете добавить аргумент flush = True к приведенному выше коду перед закрытием файла — если вы этого хотите. Но это не обязательно.

 

Итог

Мы что-то здесь пропустили? Или вы исследовали что-то интересное при использовании функции print в Python? Позвольте нам знать в комментариях ниже.



2020-02-14T15:29:44
Python

Заявление if..else в Python

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

В этой статье мы рассмотрим основы утверждения if в Python.

 

Заявление if в Python

Самая основная форма утверждения if в Python выглядит следующим образом:

if EXPRESSION:

  STATEMENT

Заявление if начинается с ключевого слова if, за которым следует условное выражение.

За EXPRESSION должно следовать двоеточие : . Если EXPRESSION имеет значение True, то STATEMENT запускается на выполнение. Если EXPRESSION возвращает False, ничего не происходит, игнорируется STATEMENT. STATEMENT может быть любым утверждением, включая множественные утверждения или дополнительные вложенные утверждения if. Чтобы не выполнять операторы, используйте оператор pass.

Блок STATEMENT начинается с углублением и концами с первой линией отступа. Большинство людей предпочитают использовать отступы с 4 или 2 пробелами. Официальное руководство по стилю для кода Python рекомендует использовать 4 пробела на уровень отступа и избегать смешивания использования табуляции и пробелов для отступа.

Давайте рассмотрим следующий пример сценария, который проверяет, больше ли заданное число больше 5.

number = int(input('Введите число: '))



if number > 5:

    print(number, ' больше 5.')

Сохраните код в файле и запустите его из командной строки:

python test.py

 

Скрипт предложит вам ввести номер. Например, если вы введете 10, условное выражение оценивается как True(10 больше 5), будет выполнена функция print.

10 больше 5.

 

Python поддерживает стандартные операции сравнения:

  • a == b- Верно, если a и b равны.
  • a != b- Правда если a и b не равны.
  • a > b- Верно, если a больше чем b.
  • a >= b- Верно, если a равно или больше чем b.
  • a < b- Правда, если a меньше, чем b.
  • a <= b- Верно, если a равно или меньше b.

Вы также можете использовать ключевое слово in, чтобы проверить, присутствует ли значение (строка, список, кортеж, словарь и т. д.):

s = 'andreyex'

if 'ey' in s:

    print('True.')

Вот еще один пример использования словаря:

d = {'a': 2, 'b': 4}

if 'a' in d:

    print('True.')

При использовании в словаре ключевое слово in проверяет, имеет ли словарь определенный ключ.

Чтобы отменить условное выражение, используйте логический оператор not:

number = int(input('Ввести число: '))



if not number < 5:

    print(number, ' меньше 5.')

 

Утверждение if..else

Оператор if..else вычисляет условие и выполняет один из двух операторов в зависимости от результата.

Оператор if..else в Python принимает следующую форму:

if EXPRESSION:

    STATEMENT1

else:

    STATEMENT2

Если EXPRESSION возвращает True, STATEMENT1 будет выполнено. В противном случае, если EXPRESSION возвращает False, будет выполнен STATEMENT2. Вы можете иметь только одно предложение else в заявлении.

Ключевое слово else должно заканчиваться двоеточием : и быть на тот же уровне отступа, что и соответствующее ключевое слово if.

Давайте добавим предложение else в предыдущий пример сценария:

number = int(input('Ввести число: '))



if number > 5:

    print(number, ' больше 5.')

else:

    print(number, ' равно или меньше 5.')

Если вы запустите код и введете число, сценарий напечатает другое сообщение в зависимости от того, больше или меньше число или равно 5.

 

Утверждение if..elif..else

Ключевое слово elif является аббревиатурой else if.

Оператор if..elif..else в Python принимает следующую форму:

if EXPRESSION1:

    STATEMENT1

elif: EXPRESSION2:

    STATEMENT2

else:

    STATEMENT3

 

Если EXPRESSION1 возвращает True, будет выполнено STATEMENTS1. Если EXPRESSION2 возвращает True, будет выполнен STATEMENTS2. Если ни одно из выражений не соответствует True, выполняется STATEMENTS3.

Ключевое слово elif должно заканчиваться двоеточием : и быть на тот же уровне отступа, что и соответствующее ключевое слово if. Вы можете иметь одно или несколько предложений elif в заявлении. Предложение else не является обязательным. Если предложение else не используется и все выражения оцениваются False, ни одно из операторов не будет выполнено.

Условия оцениваются последовательно. Как только условие возвращается True, остальные условия не выполняются, и управление программой переходит к концу оператора if.

Давайте добавим предложение elif к предыдущему сценарию:

number = int(input('Ввести число: '))



if number > 5:

    print(number, ' больше чем 5.')

elif number < 5:

    print(number, ' меньше 5.')

else:

    print(number, ' равно 5.')

 

В отличие от большинства языков программирования, Python не имеет операторов switchили case. Последовательность нескольких elifоператоров может использоваться в качестве замены switch или case.

 

Вложенные операторы if

Python позволяет вам вкладывать оператор if в оператор if. Как правило, вы всегда должны избегать чрезмерного отступа и пытаться использовать elif вместо вложенных операторов if.

Следующий скрипт предложит вам ввести три числа и напечатает наибольшее число среди чисел.

number1 = int(input('Введите первое число: '))

number2 = int(input('Введите второе число: '))

number3 = int(input('Введите третье число: '))



if number1 > number2:

    if number1 > number3:

        print(number1, 'это самое большое число.')

    else:

        print(number3, 'это самое большое число.')

else:

    if number2 > number3:

        print(number2, 'это самое большое число.')

    else:

        print(number3, 'это самое большое число.')

 

Вот как будет выглядеть вывод:

Введите первое число: 455 

Введите второе число: 567

Введите третье число: 354

567 это самое большое число.

 

Несколько условий

Логические orи andоператоры позволяют комбинировать несколько условий в выражениях if.

Вот еще одна версия скрипта для печати наибольшего числа среди трех чисел. В этой версии вместо вложенных операторов if мы будем использовать логический andоператор и elif.

number1 = int(input('Введите первое число: '))

number2 = int(input('Введите второе число: '))

number3 = int(input('Введите третье число: '))



if number1 > number2 and number1 > number3:

    print(number1, 'это самое большое число.')

elif number2 > number3 and number2 > number3:

    print(number2, 'это самое большое число.')

else:

    print(number3, 'это самое большое число.')

 

Вывод

Заявления if, if..else и if..elif..else позволяют контролировать поток выполнения Python, оценивая данные условия.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-02-11T09:49:03
Python

Как удалить файлы и каталоги в Python

В Python есть несколько встроенных модулей, которые позволяют удалять файлы и каталоги.

В этой статье объясняется, как удалять файлы и каталоги, используя функцию из модуля os, pathlib и shutil.

 

Удаление файлов

В Python вы можете использовать os.remove(), os.unlink(), pathlib.Path.unlink() чтобы удалить один файл.

Модуль os обеспечивает переносимый способ взаимодействия с операционной системой. Модуль доступен для Python 2 и 3.

Чтобы удалить один файл с помощью os.remove(), передайте путь к файлу в качестве аргумента:

import os



file_path = '/tmp/file.txt'

os.remove(file_path)

 

Функции os.remove() и os.unlink() семантически идентичны:

import os



file_path = '/tmp/file.txt'

os.unlink(file_path)

 

Если указанный файл не существует, выдается ошибка FileNotFoundError. Оба os.remove() и os.unlink() могут удалять только файлы, а не каталоги. Если указанный путь указывает на каталог, он выдаст ошибку IsADirectoryError.

Для удаления файла требуется разрешение на запись и выполнение в каталоге, в котором находится файл. В противном случае вы получите ошибку PermissionError.

Чтобы избежать ошибок при удалении файлов, вы можете использовать обработку исключений, чтобы перехватить исключение и отправить правильное сообщение об ошибке:

import os



file_path = '/tmp/file.txt'



try:

    os.remove(file_path)

except OSError as e:

    print("Ошибка: %s : %s" % (file_path, e.strerror))

 

Модуль pathlib доступен в Python 3.4 и выше. Если вы хотите использовать этот модуль в Python 2, вы можете установить его с помощью pip. pathlib предоставляет объектно-ориентированный интерфейс для работы с путями файловой системы для разных операционных систем.

Чтобы удалить файл с модулем pathlib, создайте объект Path, указывающий на файл, и вызовите метод unlink() для объекта:

from pathlib import Path



file_path = Path('/tmp/file.txt')



try:

    file_path.unlink()

except OSError as e:

    print("Ошибка: %s : %s" % (file_path, e.strerror))

 

pathlib.Path.unlink(), os.remove() и os.unlink() также могут быть использованы для удаления символической ссылки.

 

Сопоставление с образцом

Вы можете использовать модуль glob для сопоставления нескольких файлов на основе шаблона. Например, чтобы удалить все файлы .txt в каталоге /tmp, вы должны использовать что-то вроде этого:

import os

import glob



files = glob.glob('/tmp/*.txt')



for f in files:

    try:

        f.unlink()

    except OSError as e:

        print("Ошибка: %s : %s" % (f, e.strerror))

 

Чтобы рекурсивно удалить все файлы .txt в каталоге /tmp и во всех его подкаталогах, передайте аргумент recursive=True функции  glob() и используйте шаблон « ** `:

import os

import glob



files = glob.glob('/tmp/**/*.txt', recursive=True)



for f in files:

    try:

        os.remove(f)

    except OSError as e:

        print("Ошибка: %s : %s" % (f, e.strerror))

 

Модуль pathlib включает в себя две функции, glob() и rglob() соответствие файлов в заданной директории. glob() сопоставляет файлы только в каталоге верхнего уровня. rglob(), рекурсивно сопоставляет все файлы в каталоге и всех подкаталогах. В следующем примере кода удаляются все файлы .txt в каталоге /tmp:

from pathlib import Path



for f in Path('/tmp').glob('*.txt'):

    try:

        f.unlink()

    except OSError as e:

        print("Ошибка: %s : %s" % (f, e.strerror))

 

Удаление каталогов (папок)

В Python вы можете использовать os.rmdir() и pathlib.Path.rmdir() для удаления пустой директории, и shutil.rmtree() для удаления непустой директории.

В следующем примере показано, как удалить пустой каталог:

import os



dir_path = '/tmp/img'



try:

    os.rmdir(dir_path)

except OSError as e:

    print("Ошибка: %s : %s" % (dir_path, e.strerror))

 

Кроме того, вы можете удалить каталоги с помощью модуля pathlib:

from pathlib import Path



dir_path = Path('/tmp/img')



try:

    dir_path.rmdir()

except OSError as e:

    print("Ошибка: %s : %s" % (dir_path, e.strerror))

 

Модуль shutil позволяет выполнять ряд операций высокого уровня файлов и каталогов.

С помощью функции shutil.rmtree() вы можете удалить данный каталог, включая его содержимое:

import shutil



dir_path = '/tmp/img'



try:

    shutil.rmtree(dir_path)

except OSError as e:

    print("Ошибка: %s : %s" % (dir_path, e.strerror))

 

Переданный аргумент shutil.rmtree() не может быть символической ссылкой на каталог.

 

Вывод

Python предоставляет несколько модулей для обработки файлов.

Мы показали вам, как использовать os.remove(), os.unlink(), pathlib.Path.unlink() чтобы удалить один файл, os.rmdir() и pathlib.Path.rmdir() чтобы удалить пустую директорию и shutil.rmtree() для рекурсивного удаления каталога и все его содержимое.

Будьте особенно осторожны при удалении файлов или каталогов, потому что, как только файл удален, он не может быть легко восстановлен.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-02-03T21:13:36
Python

Проверьте, содержит ли строка подстроку в Python

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

 

Как проверить, содержит ли строка подстроку

Независимо от того, нужно ли проверять строку в слове, букве или фразе, в Python вы можете легко использовать встроенные методы и проверку строки в операторе.

Стоит отметить, что вы получите логическое значение (True или False) или целое число, чтобы указать, содержит ли строка то, которую вы искали. Вы узнаете об этом больше, когда мы покажем код ниже.

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

 

Способ 1. Использование оператора «in»

Предположим, у вас уже есть строка «str», вот как она будет выглядеть:

stringexample = "terminator"

"ter" in str

 

Выход для этого будет «True», потому что строка содержит то, что мы искали. Таким образом, если вы ищете что-то, а в строке этого нет, вы получите «False» в качестве вывода.

Если вы все еще не уверены, позвольте нам написать небольшую программу, чтобы объяснить то же самое:

stringexample = "Terminator"

substring = "ter"



if substring in stringexample:

    print ("Мы нашли строку!")

else:

    print ("Строка не найдена!")

 

Выход для вышеуказанного кода будет:

Мы нашли строку!

 

Метод 2: Использование метода поиска

Если вы хотите использовать метод для поиска подстроки, вы можете использовать функция  find(). Вот как это сделать:

stringexample = "kiki"

stringexample.find("ki")

 

Выход для этого будет 0.

Причина вывода в том, что эта функция возвращает самое низкое значение индекса, когда найдена подстрока.

Если она возвращает -1, это означает, что строка не содержит этой подстроки.

Вот небольшая программа, чтобы показать это в действии:

stringexample = "Kiki"

substring = "ki"



if stringexample.find("ki") != -1:

    print ("Мы нашли строку!")

else:

    print ("Строка не найдена!")

 

Выход для вышеуказанного кода будет:

Мы нашли строку!

 

Метод 3: Использование метода Contains

__contains __ () — еще одна функция, помогающая проверить, содержит ли строка определенную букву/слово.

Вот как вы можете использовать это:

stringexample = "kiki"

stringexample.__contains__("k")

 

Вы получите вывод как True/False. Для приведенного выше фрагмента кода вы получите вывод в виде:

True

 

Обратите внимание, что при написании метода используются 4 символа подчеркивания (2 перед словом и 2 после).

Вот программа, чтобы объяснить то же самое:

stringexample = "kiki"

if stringexample.__contains__("k") == True:

  print ("Да, нашел подстроку!")

else:

  print ("Строка не найдена!")

 

В этом случае вывод:

Да, нашел подстроку!

 

Завершение

Если вы решите использовать алгоритм поиска с нуля без использования функций или вышеупомянутых решений, вы можете взглянуть на некоторые алгоритмы поиска строк, чтобы узнать о них больше.

Если у вас есть вопросы или предложения, пожалуйста, дайте нам знать.



2020-01-23T08:46:01
Python