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

Функция Lambda в Python

Python — это универсальный и широко используемый в последнее время язык программирования. Однако Python предоставляет множество встроенных функций для выполнения множества конкретных задач. Однако мы можем создавать свои собственные функции для выполнения конкретной задачи. В Python ключевое слово lambda создает анонимную функцию. Функция без имени называется анонимной функцией. Обычно обычная функция в Python создается с использованием ключевого слова def. У него есть название и круглые скобки. В то время как анонимная функция используется с ключевым словом лямбда. Поэтому анонимная функция также известна как лямбда-функция. В этой статье объясняется лямбда-функция Python на примерах.

 

Синтаксис лямбда-функции

Лямбда-функция может принимать несколько аргументов и только одно выражение. Выражение выполняет свою работу, и результат возвращается. Синтаксис лямбда-функции:

lambda argument(s) : expression

Важно помнить, что лямбда-функция ограничена только одним выражением. Лямбда-функция может быть реализована в скрипте Python, когда нам нужно создать объект функции. Давайте реализуем лямбда-функцию в нашем скрипте Python.

 

Пример 1. Вычислить сумму чисел с помощью лямбда-функции.

Давайте создадим лямбда-функцию для вычисления чисел. Лямбда-функция принимает два числа в качестве аргумента и возвращает результат.

# программа для создания лямбда-функции

# создание лямбда-функции

sum_val = lambda a,b : a+b

# передача аргументов и печать значения суммы

print(sum_val(5,10))

 

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

# создание нормальной функции

def sum_val(a,b):

return a+b

# передача аргументов и печать значения суммы

print("The sum value is: ",sum_val(5,10))

 

Обе функции возвращают одно и то же значение при передаче похожих аргументов. В обычной функции мы используем ключевое слово def и должны написать имя функции. После выражения суммы мы помещаем оператор return в конец, чтобы вернуть значение результата. В лямбда-функции оператор возврата не включен. Он возвращает выходное значение после вычисления или выполнения выражения.

 

Пример 2: реализация нескольких лямбда-функций

Реализуем лямбда-функции с другим номером аргумента.

# программа для реализации множества лямбда-функций



# лямбда-функция для вычитания числа

a = lambda a,b,c: a-b-c



# передача аргументов и печать значения разности



print ( "Значение вычитания:" , a (200,10,2) )



# лямбда-функция для умножения двух чисел



b = lambda a,b:a*b



# передача аргументов и печать значения разности



print("Значение умножения:" , b( 10 , 5 ) )



# лямбда-функция для вычисления значения квадрата



c = lambda a:a*a



# передача аргументов и печать значения разности



print("Значение квадрата:" , c(10 ) )



#a lambda функция для вычисления значения куба



c = lambda a:a*a*a



# передача аргументов и печать значения разности



print("Значение куба:" , c(10 ) )



# лямбда-функция для определения четного числа



c = lambda a:(a%2==0)



# передача аргументов и печать значения разницы



print("Данное число четное:" , c(1001 ) )



# лямбда-функция для определения високосного года



c = lambda a:(a%4==0)



# передача аргументов и печать значения разницы



print("Данный год високосный:" , c(2020 ) )


 

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

 

Использование лямбда-функции внутри нормальной функции

Лямбда-функция может быть реализована внутри обычной или обычной функции Python. Функция sum_val принимает число в качестве аргумента и возвращает лямбда-функцию. Он хранится в переменной с именем value. Второй аргумент передается лямбда-функции, и она возвращает значение суммы.

#a программы для реализации функции лямбды внутри нормальной функции



#объявление нормальной функции

def sum_val(num1):

#объявление функции лямбды внутри функции

return lambda num2: num1+num2

value = sum_val(10)

print("Значение суммы равно: ",value(200))


 

Вывод

Аноним в Python называется лямбда-функцией. Анонимная функция создается, когда нам нужно использовать объект функции. В этой статье на примерах объясняется лямбда-функция.



2020-11-28T14:05:03
Python

Как преобразовать целое число в строку в Python

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

В этой статье объясняется, как преобразовать целое число Python в строку.

 

Функция str() в Python

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

Функция str() возвращает строковую версию данного объекта. Он принимает следующие формы:

class str(object='')

class str(object=b'', encoding='utf-8', errors='strict')


  • object — Объект, который нужно преобразовать в строку.

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

 

Преобразование целого числа Python в строку

Чтобы преобразовать целое число 23 в строковую версию, просто передайте это число в функцию str():

str(23)

type(days)


'23'

<class 'str'>


 

Кавычки около 23 указывают на то, что число не является целым числом, а является объектом строкового типа. Также функция type() показывает, что объект является строкой.

В Python строки объявляются с использованием одинарных (‘), двойных («) или тройных кавычек («»»).

 

Объединение строк и целых чисел

Попробуем объединить строки и целые числа с помощью оператора + и распечатать результат:

number = 6

lang = "Python"

quote = "Есть " + number + " операторов в " + lang + "."

print(quote)


 

Python выдаст ошибку исключения TypeError, потому что он не может объединить строки и целые числа:

Traceback (most recent call last):

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

TypeError: can only concatenate str (not "int") to str


 

Чтобы преобразовать целое число в строку, передайте целое число в функцию str():

number = 6

lang = "Python"

quote = "Есть " + str(number) + " операторов в " + lang + "."

print(quote)


Теперь, когда вы запустите код, он будет успешно выполнен:

Есть 6 операторов в Python.


 

Есть и другие способы объединения строк и чисел.

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

number = 6

lang = "Python"

quote = "Есть {} операторов в {}.".format(number, lang)

print(quote)


Есть 6 операторов в Python.


 

В Python 3.6 и новее вы можете использовать f-строки, которые представляют собой буквальные строки с префиксом ‘f’, содержащие выражения в фигурных скобках:

number = 6

lang = "Python"

quote = f"Есть {number} операторов в {lang}."

print(quote)


Есть 6 операторов в Python.


 

Наконец, вы можете использовать старое% -форматирование:

number = 6

lang = "Python"

quote = "Есть %s операторов в %s." % (number, lang)

print(quote)


Есть 6 операторов в Python.


 

Вывод

В Python вы можете преобразовать целое число в строку с помощью функции str().

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



2020-11-26T12:30:20
Python

Python. Класс словаря defaultdict

Python предлагает множество встроенных структур данных, таких как списки, кортежи и словари, для эффективного сохранения данных и управления ими. Словари позволяют легко сохранять данные в виде пар «ключ-значение». Ключ действует как индекс и используется для извлечения данных. Ключи должны быть уникальными и неизменными во всем словаре. Ключи в основном представляют собой строки и целые числа, хотя значение ключа может быть любого типа, например целое число, строка, число с плавающей запятой или комплексное число. Между тем, словарь может содержать коллекцию, такую ​​как список, кортеж или какой-либо другой тип словаря. Словарь в Python создается с помощью пары фигурных скобок, в которых каждая пара «ключ-значение» разделяется запятой.

Что, если вы попытаетесь получить доступ или изменить определенный ключ в несуществующем словаре? Что ж, в этом случае интерпретатор Python вызовет ошибку «KeyError» и прекратит выполнение программы.

Давайте посмотрим на пример ошибки KeyError.

#Создание списка

my_dict= {1:"Hello",2:"Welcome",3:"AndreyEx"}

#доступ к несуществующему ключу

my_dict[4]

 

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

 

Объяснение и примеры defaultdict

Defaultdict — это альтернатива словарю Python. Он возвращает объекты типа словаря. Defaultdict — это подкласс dict. В случае отсутствия ключа вместо того, чтобы вызывать ошибку «KeyError», значение по умолчанию предоставляется для несуществующего ключа. Синтаксис defaultdict следующий:

defaultdict(default_factory)

Функция defaultdict принимает в качестве аргумента параметр default_factory. Функция default_factory возвращает значение по умолчанию для определенного defaultdict. Если мы попытаемся получить доступ или изменить отсутствующий ключ, то функция default_factory в качестве результата вернет значение по умолчанию. Если функция default_factory отсутствует, defaultdic вызовет ошибку «KeyError», если будут отсутствовать какие-либо ключи.

Во-первых, мы реализуем defaultdic в нашем скрипте Python для доступа как к существующим, так и к отсутствующим ключам.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение функции, возвращающей значение по умолчанию

def my_func():

print("Ключ не определен")

# создание defualtdict 

# передача my_func() в качестве аргумента для defaultdict

my_dict=defaultdict(my_func)

# определение ключей и значений

my_dict[1]="Привет"

my_dict[2]="Добро пожаловать"

my_dict[3]="AndreyEx" 

#доступ к значениям с помощью ключей

print(my_dict [1])

print(my_dict [2])

print(my_dict [3]) 

# доступ к отсутствующему или не определенному ключу

my_dict [4]

 

[4] — это недостающий ключ. Таким образом, вместо того, чтобы вызвать ошибку «KeyError», он вызывает функцию default_factory, которая возвращает значение по умолчанию.

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

Затем мы реализуем лямбда-функцию и передадим ее в качестве аргумента defaultdict.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# создать defualtdict

# передать функцию Lamnda в качестве аргумента defaultdict

my_dict=defaultdict(lambda:"Ключ не определен")

# определение ключей и значений

my_dict[1]="Привет"

my_dict[2]="Добро пожаловать"

my_dict[3]="AndreyEx" 

#доступ к значениям с помощью ключей

print(my_dict[1])

print(my_dict [2])

print(my_dict [3]) 

#доступ к отсутствующему или не определенному ключу

print(my_dict [4])

 

Defaultdict вызывает default_factory для предоставления значения по умолчанию, но функция __missing () __ предоставляет значение по умолчанию. Функция __missing () __ — это встроенная функция в Python, которая принимает в качестве аргумента параметр default_factory. Если параметр default_factory не определен, функция __missing () __ вызывает ошибку «KeyError».

Здесь мы будем использовать функцию __missing () __ в нашем скрипте Python.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение функции для возврата значения по умолчанию

def my_func() :

print("Ключ не определен")

# создание defualtdict 

#передача my_func() в качестве аргумента для defaultdict

my_dict=defaultdict(my_func)

# определение ключей и значений

my_dict[1]="AndreyEx" 

# доступ к значениям с помощью ключей

print(my_dict [1]) 

# доступ к отсутствующему или не определенному ключу

my_dict.__missing__(2)

 

Классы list и int также могут использоваться как параметры default_factory с defaultdict.

 

Список как параметр default_factory

Defaultdict создается со значениями списка, когда классу списка передается параметр default_factory.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение класса списка передачи defaultdict

# как default_factory

my_dict=defaultdict(list)

for i in range(7):

my_dict[i].append(i)

#печать значений

print(my_dict)

 

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

 

Целые числа как параметр default_factory

Если мы передадим класс int в качестве параметра default_factory, мы сможем создать defaultdict, который будет содержать только целые числа. Мы создадим список целых чисел и сохраним его в defaultdict.

# импортировать defaultdict из модуля коллекции

from collections import defaultdict

# определение defaultdict

# передача класса int как default_factory

my_dict=defaultdict(int)

# создание списка целых чисел

my_list=[1,2,3]

for i in my_list:

my_dict[i]+=1

#печать значений

print(my_dict)

 

В данном выводе целые значения перед двоеточием (:) являются ключами, а целые значения после двоеточия — значениями.

 

Вывод

Dafualtdict — это подобный словарю класс, присутствующий в модуле коллекций. Он работает как словарь Python, но не вызывает ошибку «KeyError», если ключ не найден. Эта статья подробно объясняет defaultdict с различными примерами.



2020-11-25T12:42:58
Python

Замена строки Python

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

.replace () Метод

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

Метод .replace() имеет следующий синтаксис:

str.replace(old, new[, maxreplace])

  • str — строка, с которой вы работаете.
  • old — Подстрока, которую нужно заменить.
  • new — подстрока, заменяющая старую подстроку.
  • maxreplace — необязательный аргумент. Количество совпадений старой подстроки, которую вы хотите заменить. Матчи отсчитываются с начала строки.

Метод возвращает копию строки srt с некоторыми или всеми совпадениями подстроки old замененной на new . Если maxreplace не указан, заменяются все вхождения.

В приведенном ниже примере мы заменяем подстроку far в строке s с miles :

s = 'A long time ago in a galaxy far, far away.'s.replace('far', 'miles')

Результатом является новая строка:

'A long time ago in a galaxy miles, miles away.'

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

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

s = 'My ally is the Force, and a powerful ally it is.'s.replace('ally', 'friend', 1)

Строка результата будет выглядеть так:

'My friend is the Force, and a powerful ally it is.'

Чтобы удалить подстроку, используйте вместо нее пустую строку '' . Например, чтобы удалить space из следующей строки, вы должны использовать:

s = 'That’s no moon. It’s a space station.'s.replace('space ', '')

Новая строка будет выглядеть следующим образом:

`That’s no moon. It’s a station.'

Заменить подстроку в списке строк

Чтобы заменить подстроку в списке строк, используйте конструкцию понимания списка, как показано ниже:

s.replace('old', 'new') for s in list

Давайте посмотрим на следующий пример:

names = ['Anna Grace', 'Betty Grace', 'Emma Grace']new_names = [s.replace('Grace', 'Lee') for s in names]print(new_names)

Приведенный выше код создает копию списка, в котором все вхождения подстроки Grace заменены на Lee :

['Anna Lee', 'Betty Lee', 'Emma Lee']

Выводы

Замена подстроки в строке — одна из самых основных операций при написании кода на Python. После прочтения этого руководства вы должны хорошо понимать, как использовать метод replace() .

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



2020-11-25T00:58:18
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 ошибка FileNotFoundError . И os.remove() и os.unlink() могут удалять только файлы, но не каталоги. Если указанный путь указывает на каталог, они IsADirectoryError ошибку IsADirectoryError .

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

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

import os



file_path = '/tmp/file.txt'



try:

    os.remove(file_path)

except OSError as e:

    print("Error: %s : %s" % (file_path, e.strerror))


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

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

from pathlib import Path



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



try:

    file_path.unlink()

except OSError as e:

    print("Error: %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("Error: %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("Error: %s : %s" % (f, e.strerror))


Модуль pathlib включает две функции glob, 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("Error: %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("Error: %s : %s" % (dir_path, e.strerror))


В качестве альтернативы вы можете удалить каталоги с pathlib модуля pathlib :

from pathlib import Path



dir_path = Path('/tmp/img')



try:

    dir_path.rmdir()

except OSError as e:

    print("Error: %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("Error: %s : %s" % (dir_path, e.strerror))


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

Выводы

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

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

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

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



2020-11-22T08:11:03
Python

Функция фильтра в Python

Filter — это встроенная функция Python. Он фильтрует указанную последовательность или итерацию с помощью функции, которая проверяет каждый элемент или элемент в итерации на истинность или ложь. Проще говоря, функция filter фильтрует итерируемое через функцию. Данная функция проверяет каждый элемент последовательности или итерации и возвращает истину, если элемент удовлетворяет заданным критериям. В результате функция filter() создает новый итератор. Чаще всего используются итерируемые списки, кортежи и словари. В этой статье кратко описывается функция filter() с помощью примеров.

 

Синтаксис функции filter()

Давайте сначала обсудим синтаксис функции filter(). Синтаксис функции filter() следующий:

filter(function, iterable or sequence)

 

Функция фильтра принимает в качестве аргумента два параметра, т. е. функцию и итерацию. Функция проверяет каждый элемент или элемент итерируемого, истинно это или нет, в соответствии с заданными критериями. Второй аргумент — итерация или фильтруемая последовательность. Функция оценивает каждый элемент итерации по заданным критериям. Наконец, функция filter() возвращает отфильтрованный итератор.

Давайте посмотрим на примеры функции filter() и реализуем ее в нашем скрипте Python.

 

Пример 1. Отфильтруйте список чисел

Создадим список номеров и отфильтруем его. В данном примере list_func() оценивает каждый элемент списка по заданному условию. Если элемент списка больше 5, функция возвращает значение true и добавляет элемент в фильтр.

#создание списка номеров



my_list = [1,2,3,4,5,6,10,20,35,8,4,50,60]



#создаем функцию



def list_func(listObj):



# условный оператор, чтобы проверить номер



if(listObj>5):



return True



else:



return False



#используя функцию Filter для фильтрации повторяемое через list_func



numbers = filter(list_func,my_list)



#печать нового итератора



for i in numbers:



print(i)



 




В выходных данных отображается отфильтрованный итератор. Отфильтрованный итератор состоит из всех элементов, которые больше 5.

 

Пример 2: отфильтровать список символов

Создадим список символов и применим функцию фильтрации.

#создание списка номеров



my_list = ['a','b','c','l','d','i','k','n','o','u','x']



#создание функции



def list_func(listObj):



word_list=['l', 'i', 'n', 'u', 'x']



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



if(listObj in word_list):



return True



else:



return False



#использование функции фильтра для фильтрации итераций через list_func



words = filter(list_func,my_list)



#печать нового цикла



for i in words:



print(i)




 

Примеры 3. Отфильтруйте четное число

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

#создание списка номеров



my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]



#создание функции



def list_func(listObj):



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



if(listObj%2==0):



return True



else:



return False



#использование функции фильтра для фильтрации итераций через list_func



even_numbers= filter(list_func,my_list)



#печать нового цикла



for i in even_numbers:



print(i)




 

Примеры 4: отфильтровать високосный год

Давайте отфильтруем високосные годы из данного списка лет с помощью функции фильтрации.

#создание списка номеров



my_list = [2010,2012,2014,2016,2018,2020,2022,2024]



#создание функции



def list_func(listObj):



# условный оператор для проверки високосного года



if(listObj%4==0):



return True



else:



return False



#использование функции фильтра для фильтрации итераций через list_func



leap_year= filter(list_func,my_list)



#печать нового цикла



for i in leap_year:



print(i)




 

Выходные данные отображают високосные годы из данного списка лет.

 

Примеры 5: использование лямбда-функции с filter ()

Функция фильтра в основном используется с лямбда-функцией. Давайте передадим лямбда-функцию в качестве аргумента функции filter().

#создание списка номеров



my_list = [2010,2012,2014,2016,2018,2020,2022,2024]



##объявление переменной even_number



#переменная even_number содержит четные числа



#объявление функции lambda



even_number = filter(lambda listObj:listObj%2==0,my_list)



print("Список четных чисел")



for i in even_number:



print(i)



leap_year = filter(lambda listObj:listObj%4==0,my_list)



print("Список високосных лет")



for x in leap_year:



print(x)




 

Вывод

Filter() — это встроенная функция Python, которая используется для фильтрации итерации для данной функции. Эта статья объясняет функцию filter() с примерами.



2020-11-19T09:39:20
Python