Page.notfound

Page.notfound

Админ канала https://t.me/python_scrypt
Пикабушник
606 рейтинг 30 подписчиков 15 подписок 31 пост 4 в горячем
5

Решаем задачи с собесов на Джуниор разработчика. Подробно разбираем код. Числа Фибоначчи

Всем привет) сегодня напишем программу для нахождения первых n чисел Фибоначчи и увидим одну из примечательных особенностей специального символа end. Приступим)

Первоначально пройдемся по теории. Числа Фибоначчи — это последовательность чисел, которые задаются по определённому правилу. Оно звучит так: каждое следующее число равно сумме двух предыдущих. Первые два числа заданы сразу и равны 0 и 1.

Вот как выглядит последовательность Фибоначчи:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, … , ∞

Более подробно можно почитать тут

Формула для нахождения

Формула для нахождения

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

Приступим к реализации, для начала создадим 2 переменные fib1, fib2 и присвоим им первоначальные значения, обе будут равны единице:

fib1 = fib2 = 1 # первоначальные значения fib1 и fib2

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

fib1 = fib2 = 1 # первоначальные значения fib1 и fib2

n = int(input("Введите количество выводимых чисел: ")) # присваиваем пременной n значение количества выводимых цифр

Выводим первоначальные числа которые записаны в переменные fib1 и fib2, заметим что в конце используем символ end, в данном случае он вставляет пробел между строками и предоставляет нам возможность продолжить дополнять текст в одну строку.

fib1 = fib2 = 1 # первоначальные значения fib1 и fib2

n = int(input("Введите количество выводимых чисел: ")) # присваиваем пременной n значение количества выводимых цифр

print(fib1, fib2, end = " ") # выводим первые 2 числа

Создаем цикл для поиска остальных чисел от 2 (так как 2 первых значения уже есть) до n (количество выводимых чисел, не забываем про ошибку на еденицу)

fib1 = fib2 = 1 # первоначальные значения fib1 и fib2

n = int(input("Введите количество выводимых чисел: ")) # присваиваем пременной n значение количества выводимых цифр

print(fib1, fib2, end = " ") # выводим первые 2 числа

for i in range (2, n): # и так как первоначальные значения уже вывели продолжим с двух

Теперь подходим к самому главному выражению в цикле, присваиваем fib1 будет равно fib2 а fib2 = fib1 + fib2 таким образом при каждой итерации цикла fib2 будет равняться предыдущее число + текущее. Отступы в цикле обозначил как " > > "

fib1 = fib2 = 1 # первоначальные значения fib1 и fib2

n = int(input("Введите количество выводимых чисел: ")) # присваиваем пременной n значение количества выводимых цифр

print(fib1, fib2, end = " ") # выводим первые 2 числа

for i in range (2, n): # и так как первоначальные значения уже вывели продолжим с двух

> > fib1, fib2 = fib2, fib1 + fib2 # выполняется в цикле

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

fib1 = fib2 = 1 # первоначальные значения fib1 и fib2

n = int(input("Введите количество выводимых чисел: ")) # присваиваем пременной n значение количества выводимых цифр

print(fib1, fib2, end = " ") # выводим первые 2 числа

for i in range (2, n): # и так как первоначальные значения уже вывели продолжим с двух

> > fib1, fib2 = fib2, fib1 + fib2 # fib1 = fib2 а fib2 = fib1 +fib2

> > print(fib2, end = " ") # вывод полученного значения

Запускаем код и любуемся результатом:

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

Картинка с кодом

Картинка с кодом

Также можно поиграться с кодом в онлайн интерпретаторе - тык

Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)

Показать полностью 3
13

Разбираем вопросы с собеседований на Python Junior Developer

Вопрос: В чем разница сравнения через is и "=="

Ответ:

== проверяет, одинаковые ли значения у переменных.

is проверяет, указывают ли переменные на один и тот же объект.

a = [1, 2] b = [1, 2]

print(a == b) #True

print(a is b) #False

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

Пример:

a = [1, 2, 3]

b = a  # Присваиваем переменной b ссылку на тот же объект, что и у переменной a

print(a is b)  # Вывод: True, потому что a и b указывают на один и тот же объект в памяти

print(a == b)  # Вывод: True, потому что содержимое a и b одинаковое

c = [1, 2, 3]

print(a is c)  # Вывод: False, потому что a и c указывают на разные объекты в памяти

print(a == c)  # Вывод: True, потому что содержимое a и c одинаковое

В этом примере переменные `a` и `b` ссылаются на один и тот же объект в памяти, поэтому оператор `is` возвращает `True`, а содержимое переменных `a` и `b` одинаковое, поэтому оператор `==` также возвращает `True`. С другой стороны, переменная `c` ссылается на новый объект, который содержит те же значения, что и `a`, но не является тем же самым объектом, поэтому оператор `is` возвращает `False`, хотя оператор `==` возвращает `True`, потому что значения объектов одинаковые.

Мой канал по python в тг по Python: https://t.me/python_scrypt (обзор библиотек, шпаргалки, вопросы с собесов)

Ставь + если полезно!

Показать полностью
2

Лямбда-функция в Python

Python lambdas - это небольшие, анонимные, суб-синтаксические функции, которые более ограничены, но короче, чем обычные функции Python.

В этой статье мы увидим все о лямбде. Мы обсудим и постараемся ответить на следующий вопрос о лямбде:

  1. Откуда появилась лямбда

  2. Что такое лямбда-функция

  3. Как использовать лямбда-функцию

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

  5. Альтернативы лямбда

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

Откуда появилась лямбда

История лямбда началась еще в 30-х годах прошлого века. Алонзо Черч, наиболее известный своим лямбда-исчислением, тезисом Черча – Тьюринга, был американским математиком и логиком, формализовавшим лямбда-исчисление. Функциональные языки берут свое начало в математической логике и лямбда-исчислении, в то время как ключевые языки программирования используют модель вычислений на основе состояний, разработанную Аланом Тьюрингом. Две вычислительные модели, лямбда-исчисление и машины Тьюринга, можно преобразовать в одну. Это сходство известно как гипотеза Черча-Тьюринга.

Функциональные языки, такие как Haskell и Lisp, наследуют лямбда-исчисление, но такие языки, как Python или C, наследуют императивное программирование.

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

Что такое лямбда-функция

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

Ключевое слово lambda используется для определения анонимной или лямбда-функции.

Если мы сравним лямбда-функцию и обычную функцию, то,

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

  2. Лямбда-функция - это однострочные функция. Ее тело содержит выражение в той же строке, в которой оно определено. В обычных функциях, функции содержат блоки тела, в которых определены для выполнения некоторые операторы.

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

    x = lambda x,y : x * y

    print(x(3,4))

    x = ( lambda x,y : x*y) (2,3)

    print(x)

В приведенном выше коде показана лямбда-функция, которая дает произведение двух переменных x и y. В приведенном выше примере x - это переменная, которая будет хранить возвращаемое значение лямбда-выражения.

Части лямбда-выражения.

Ключевое слово - лямбда.

Аргументы - x и y.

Выражение - x * y

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

Ниже приведен пример передачи аргументов в одной строке.

x = ( lambda x,y : x*y) (2,3)

print(x)

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

Как использовать лямбда-функцию

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

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

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

  1. Сначала я определяю лямбда-выражение для вычисления экспоненты.

  2. Передаю это выражение лямбда-функции, представленной квадратным прямоугольником.

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

  4. Код ниже.

    Exp = (lambda x,y : x**y) (4,4)

    print(Exp)

Когда следует избегать лямбда-функции

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

Когда мы использовали лямбда-функцию, мы не использовали имя функции, и не было необходимости явно вызывать лямбда-функцию, поэтому лямбда называется анонимной функцией.

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

Вот некоторые моменты против использования лямбда-функции в Python:

  1. Читаемость кода

  2. Заставлять мыслить функционально

  3. Странный синтаксис

  4. Загадочный стиль

Альтернативы лямбда

  1. Понимание списка.

  2. Генераторы.

Понимание списков - лучшая альтернатива лямбда. В некоторых случаях лямбда-выражение используется с функциями map (), reduce () и filter (), но то же самое может быть выполнено с пониманием списка вместе с циклом for.

Мой канал по python в тг по Python: https://t.me/python_scrypt (обзор библиотек, шпаргалки, вопросы с собесов)

Ставь + если полезно!

Показать полностью
9

Разбираем вопросы на Python Junior Developer

Вопрос: Что такое лямбда-функции ?

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

Зачем нужны лямбда-функции?

Лямбда-функции часто используются в тех случаях, когда необходима простая функция для кратковременного использования, и нет смысла определять полноценную функцию с помощью def. Это может быть полезно для сортировки или фильтрации данных, а также в качестве аргумента для функций высшего порядка, таких как map(), filter() и reduce().

Пример использования:

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

square = lambda x: x * x

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

print(square(5)) # Выведет 25

# Лямбда-функция в качестве аргумента функции map()

numbers = [1, 2, 3, 4]

squared_numbers = list(map(lambda x: x ** 2, numbers))

print(squared_numbers) # Выведет [1, 4, 9, 16]

# Лямбда-функция для фильтрации списка

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))

print(even_numbers) # Выведет [2, 4]

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

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

Мой канал по python в тг по Python: https://t.me/python_scrypt (обзор библиотек, шпаргалки, вопросы с собесов)

Ставь + если полезно!

Показать полностью
3

Django vs Flask. Краткое сравнение

Django и Flask являются двумя популярными фреймворками для создания веб-приложений на языке Python. Они оба предлагают инструменты для разработки, но имеют разные подходы к структуре проекта и функциональности.

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

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

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

Django чуть медленнее Flask из-за своей более высокой функциональности и накладных расходов. Однако на практике разница в скорости работы между ними незначительна для большинства веб-приложений.

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

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

Мой канал по python в тг по Python: https://t.me/python_scrypt (обзор библиотек, шпаргалки, вопросы с собесов)

Django vs Flask
Всего голосов:
Показать полностью 1
9

Подробно разбираем вопросы с собесов на Junior Python Developer

Вопрос: Что может быть ключом в словаре ?

Словарь — это коллекция элементов, которая хранит данные в парах ключ-значение. Ключ в словаре может быть любым неизменяемым типом данных: числами, строками, кортежами. Главное требование к ключу — он должен быть уникальным в рамках одного словаря и хешируемым.

Хешируемость означает, что объект должен иметь хеш-значение, которое не изменяется на протяжении всего времени существования объекта. Это необходимо для того, чтобы Python мог быстро находить значение по ключу. Если бы ключи были изменяемыми, их хеш-значения могли бы измениться, и это привело бы к тому, что значение по ключу стало бы невозможно найти.

Примеры ключей в словаре:

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

my_dict = {"name": "Alice", "age": 25}

Числа - также могут использоваться в качестве ключей. Это могут быть целые числа или числа с плавающей точкой.

my_dict = {1: "one", 2: "two"}

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

my_dict = {(1, 2): "point", (3, 4): "another point"}

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

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

Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)

Показать полностью
10

Разбираем вопросы с собеса на джуна по Python

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

Ответ: Списки, кортежи и словари являются основными типами данных в Python. Они имеют разные свойства и используются для разных целей.

Списки (list) являются изменяемыми коллекциями элементов. Они могут быть изменены в процессе выполнения программы, например, можно добавить или удалить элементы. Списки создаются с помощью квадратных скобок, например:

my_list = [1, 2, 3].

Кортежи (tuple) также являются коллекциями элементов, но они являются неизменяемыми, то есть их нельзя изменить после создания. Кортежи обычно используются, когда нам нужно передать данные в функцию без возможности их изменения. Это помогает обеспечить безопасность и надежность вашего кода. Кортежи создаются с помощью круглых скобок, например:

my_tuple = (1, 2, 3).

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

my_dict = {“key1”: “value1”, “key2”: “value2”}.

P. S. Привел тут не все признаки, в следующих статьях больше раскрою тему

Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)

Показать полностью
110

Самые популярные сайты для поиска работы Джунам

https://angel.co/jobs - Платформа для поиска работы в стартапах.

https://weworkremotely.com/ - Крупнейшее сообщество удаленной работы в мире. С более чем 4,5 миллионами посетителей WWR является местом номер один для поиска.

https://indeed.com - Поможет отыскать удаленную работу во всем мире. Интерфейс русскоязычный, а интересы соискателей платформа ставит на первое место.

https://www.fiverr.com/ - Работа для It специалистов , в основном фриланс. К сожалению, объявили о прекращении работы со специалистами из России. Если Вы в другой локации – дерзайте!

https://remotive.com/ - Крупное сообщество в помощь удаленщикам.

https://remoteok.com/ - Неплохой поисковик работы. Не нужно создавать аккаунт, вам просто предложат отправить резюме или портфолио на электронные адреса после того, как заполните анкету.

https://www.idealist.org/ - Хорошая площадка с большим количеством различных стажировок, в том числе и удаленно.

https://dribbble.com/ - Сайт в основном для дизайнеров. Много удаленных вакансий

https://www.glassdoor.com/ - Сайт предлагает возможность поиска вакансий по большинству стран.

https://www.jobisjob.com/ - Особенно хочу выделить - отличный ресурс, собирает предложения по всем площадкам практически со всего мира.

https://www.monster.com/ - Крупный международный портал. Сначала предлагает определиться с географией будущей работы, а потом смотреть результаты.

https://www.dice.com/ - Похож на предыдущий, он считается одним из лучших ресурсов для поиска вакансий технических специалистов и инженеров.

https://www.careerbuilder.com/ - Интересный портал для поиска работы в США.

https://www.reed.co.uk/ - Тоже самое для Великобритании.

https://www.gulftalent.com/ - Вакансии по ОАЭ и другим странам залива.

https://www.monstergulf.com/ - Еще один сайт по поиску работы в ОАЭ

https://hrcyprus.com/ - Помощь в поиске работы на Кипре

https://designer.ru/ - Большая платформа с вакансиями для дизайнеров. Иногда публикуют вакансии джунов

https://www.remocate.app/ - Сайт с вакансиями для релокантов. Иногда публикуют вакансии джунов

https://careerspace.app/ - Сайт с подборками вакансий. Вакансии для джунов обновляются каждый день

Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек, вопросы с собесов)

Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)

Показать полностью
Отличная работа, все прочитано!