26 сентября 2019 г.
Всем привет,
Я прошу вас просмотреть мой предыдущий блог, чтобы быть в курсе моих успехов. Однако я постараюсь изо всех сил, чтобы все было просто и понятно без каких-либо предварительных исследований.
Регулярные выражения
Регулярные выражения — это специальные синтаксические шаблоны, которые используются для сопоставления последовательностей в строках в Python. Некоторые примеры регулярных выражений:
[0-9] or \d - matches one digit [0-9]+ or \d+ - one or more digits together [0-9]* or \d* - zero or more digits together [0-9]. or \d. - one character after one digit together [0-9].. or \d.. - two characters after one digit together [0-9]... or \d... - three characters after one digit together [0-9].{n} or \d.{n} - n characters after one digit together Similarly, [a-z] - matches a to z [A-Z] - matches A to Z \w - matches any letter of alphanumeric type \W - matches any letter of non-alphanumeric type \s - matches one empty space Use of +,*,.,{} are also valid in the above sequences. Examples: \d{10} - Exactly 10 numbers together will be matched \d{12,} - 12 or more numbers will be matched
Например, если вы хотите сопоставить любой идентификатор электронной почты с помощью регулярного выражения, шаблон регулярного выражения
[a-zA-Z0-9._-]+\@[a-zA-Z0-9]\.[a-zA-Z_.]
Группировка регулярных выражений
В случае совпадения длинных шаблонов в строках лучше всего разбить искомую последовательность на группы и попытаться сопоставить группы одну за другой.
Например, если вы хотите сопоставить URL-адрес, например
https://www.google.com/search/Python-3 http://yahoo.co.in www.google.com
Шаблон регулярного выражения
(https[s]?://)?(www\.)?([a-zA-Z0-9_-])+\.([a-zA-Z0-9\.])+
В случае кода python3 структура будет следующей
import re #for regular expressions regex = re.compile(r" <Enter your regex here> ") matches = regex.search(" <Enter the string in which expression has to be matched> ") print(matches.group())
Итераторы и генераторы
Итераторы и итераторы
Итерируемые объекты — это объекты, которые можно перебирать. Он генерирует итератор при передаче через функцию iter().
Итераторы — это объекты, которые используются для перебора итерируемого объекта с помощью функции next(). У итераторов есть метод __next__(), который возвращает следующий элемент объекта.
Итерация экономит место в памяти, в отличие от использования циклов for при обходе в итерации.
Генераторы
Генераторы — это функции, которые вместо одного значения могут возвращать несколько значений с помощью циклов. Здесь вместо ключевого слова return можно использовать yield, так как оно не выводит вас из программы. Yield просто возвращает значение, приостанавливая выполнение. Это также изменяет значение на следующее значение.
Потребность в генераторах возникает тогда, когда вам нужна настраиваемая итерация. Классы также могут выполнять настраиваемые итерации, которые будут изучены позже.
Разница между списком и генератором заключается в том, что списки могут содержать все значения одновременно, а генераторы могут хранить только одно значение одновременно. Через итерацию следующее значение получается каждый раз, когда генератор зацикливается.
Параметры в функции
- Параметры по умолчанию. Пример: функция определения (a = 10, b = 10):
- Справочные параметры. Пример: функция определения (а, б):
- Специфические параметры ключевого слова. Пример: функция определения (int, str):
- Параметры переменной длины. Пример: функция защиты (algs, *kwrgs):
Анонимные функции (лямбда-функции)
Синтаксис
x = lambda arg1, arg2, …, argn : expression
Ex:
sum = lambda a,b:a+b print(sum(1,2))
выходы
3
Объектно-ориентированное программирование
До сих пор мы использовали процедурное программирование. Для больших баз данных у нас будет много функций, и ими будет сложно управлять. Поэтому нам нужно объектно-ориентированное программирование.
Есть 4 основные особенности, связанные с ООП:
- Инкапсуляция
- Абстракция
- Наследование
- Полиморфизм
Инкапсуляция — это свойство, при котором переменные и атрибуты класса, а также методы и функции, которые с ним работают, связываются вместе под одной головкой, например, класс является примером.
В абстракции мы скрываем работу класса и позволяем другим классам видеть только то, что мы хотим, чтобы они видели.
Наследование — это свойство, связанное с созданием новых классов из существующих классов и новых классов, обладающих свойствами родительского класса.
Полиморфизм представляет собой способность демонстрировать различное поведение в зависимости от природы, но реализация остается неизменной.
Класс
Синтаксис
class ClassName: <attributes> <functions> object = ClassName() object_new = ClassName()
self : позволяет получить доступ к вашим переменным вне класса. Объект неявно передается при вызове функции, имеющей self.
Конструкторы: помогают инициализировать переменные экземпляра.
Синтаксис:
def __init__(self, arg): self.variable = arg
Статические переменные: значение статической переменной остается одинаковым для всех экземпляров классов.
Модульное программирование
Модульное программирование — это метод программирования, при котором программа разбивается на маленькие части, чтобы использовать модули снова и снова.
Модули: Модули представляют собой набор функций.
Синтаксис
from module_name import f1, f2, f3, ...#selectively import functions #or from module_name import *#import all the functions under module_name
Пакеты. Пакеты — это набор модулей, у которых есть собственный метод __init__(). С ним также связан файл setup.py для установки в новую систему.
Обработка исключений
В основном в программировании наблюдаются два типа ошибок, а именно ошибки времени компиляции и ошибки времени выполнения. Ошибки времени выполнения называются исключениями.
Синтаксис
try: <any code that would throw an exception> <ex: divide by 0> except Exception: print("<your message>") else: <if no exceptions, this part is run> finally: <no matter if there are exceptions or not in either try or except, this part will run>
Дата и время
Вот некоторые из важных команд, связанных с библиотекой datetime:
import datetime - imports the module datetime.date(yyyy,m,d) - do not prefix month and day with 0 dt = datetime.date.today() - today's date will be stored dt.weekday() - prints the day index dt.isoweekday() - prints the day number ddelta = datetime.timedelta(days=7) - a difference of 7 days will be calculated and stored next_week = dt+ddelta - next week same day will be stored
datetime.datetime.today() и datetime.datetime.now() выводят аналогичные значения, то есть текущую дату и время. Однако разница между ними заключается в том, что today() использует ваш локальный часовой пояс, а now() принимает аргумент часового пояса.
Для работы с часовыми поясами рекомендуется использовать библиотеку pytz, доступ к которой можно получить через
import pytz strftime() - used as string format time to print in a particular format. strptime() - used as string pass time to input in a particular format.
Существует два типа даты и времени:
- Наивно: нет информации о часовом поясе.
- Осведомлен: имеет информацию о часовом поясе.
Работа с JSON-файлами
JSON — нотация объекта Javascript
Веб-приложения и мобильные приложения получают данные из таких источников, как базы данных, API и другие веб-сайты, в форме XnY, объектов и JSON.
Формат JSON похож на словарь в python.
Травление: травление — это другое название процесса приведения типов.
Сбор и распаковка файлов JSON выполняется с помощью специальных методов, называемых load() и dump() в python.
json.loads() - a json string is converted to a dictionary json.dumps() - a dictionary is converted to a json string json.load() - a json file is converted to dictionary json.dump() - a dictionary is dumped into a json file
Работа с файлами
Менеджер контекста
with open("test.txt", 'r') as file: <body>
После выхода из блока мой файл будет закрыт.
В случае больших файлов используйте
file.readlines() - gives an iterator of list of lines
Это все по темам, затронутым в предыдущие дни.
Отписка на сегодня.