390455525-2ac26387-aaa3-41ed-bc00-7d488600343c.gif
188 KB
textual | Конкурент Tkinter
Еще один способ создать свое приложение на Python. Этот фреймворк — коллекция виджетов (кнопки, дропдауны и проч.), которым можно задавать любой функционал, чтобы потом превратить в Standalone-приложение.
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
Еще один способ создать свое приложение на Python. Этот фреймворк — коллекция виджетов (кнопки, дропдауны и проч.), которым можно задавать любой функционал, чтобы потом превратить в Standalone-приложение.
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
👀3🗿1
fuzzywuzzy | Нечеткий поиск
Один энтузиаст переводит статьи с RealPython, и на сей раз хорошо получилось у него про FuzzyWuzzy — алгоритм нечеткого поиска, который позволяет сравнить похожие, но не полностью совпадающие строки. Лаконично и очень понятно про Расстояние Левенштейна и применение библиотеки.
#инструмент
@zen_of_python
Один энтузиаст переводит статьи с RealPython, и на сей раз хорошо получилось у него про FuzzyWuzzy — алгоритм нечеткого поиска, который позволяет сравнить похожие, но не полностью совпадающие строки. Лаконично и очень понятно про Расстояние Левенштейна и применение библиотеки.
#инструмент
@zen_of_python
Вопрос подписчика
Задает @Evgen_Lapot:
«Всех приветствую, не совсем новичок, но и не спец. Перейду к вопросу. Как сделать код более безопасным, кроме того, чтобы использовать переменные окружения».
@zen_of_python
Задает @Evgen_Lapot:
«Всех приветствую, не совсем новичок, но и не спец. Перейду к вопросу. Как сделать код более безопасным, кроме того, чтобы использовать переменные окружения».
@zen_of_python
Forwarded from Типичный программист
Редакция tproger ищет авторов, которые разбираются в разных технологиях — от фронтенда до devops.
Важно писать понятно и с пользой для читателей. Мы поможем с редактированием, оплатим работу и продвинем ваши статьи на большую it-аудиторию.
Если у вас есть опыт и желание писать для разработчиков и программистов, заполняйте анкету и присоединяйтесь к tproger: https://forms.gle/nGwi92sepAqGuE1U9
#tproger
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from Python: задачки и вопросы
👍2
Forwarded from Python: задачки и вопросы
1. Создание генератора:
В этой строке создается объект генератора
2. Первый вызов
Когда вы вызываете
3. Второй вызов
Теперь, когда вы вызываете
Затем генератор продолжает выполнение, и значение
G = gen()
В этой строке создается объект генератора
G
, но код внутри функции gen()
не начинает выполняться, пока не будет вызван next(G)
.2. Первый вызов
next(G
):
print(next(G)) # 0
Когда вы вызываете
next(G)
в первый раз, генератор начинает выполнение с начала функции gen()
. Внутри функции запускается цикл for
и выполняется первая итерация, где i
становится равным 0. Затем происходит yield i
, что означает, что значение 0 возвращается, и генератор приостанавливается. Значение 0 выводится на экран.3. Второй вызов
next(G)
:
print(next(G)) # None 1
Теперь, когда вы вызываете
next(G
) во второй раз, генератор продолжает выполнение с той точки, где он был приостановлен (после yield
). В этот момент выполнение доходит до X = yield i
, и так как вызывается next(G)
без передачи аргумента, X
будет установлено в значение None
. Затем срабатывает print(X)
, и выводится None
.Затем генератор продолжает выполнение, и значение
X
становится равным 1.👍11❤3
По просьбе подписчика
Вопрос от подписчика @andrul1kk:
«Не совсем понимаю разницу между yield и return».
Надеюсь, с английским у вас все в порядке, ибо короткое и действительно понятное видео про разницу между операторами есть в этом трехминутном видео. Непросто понять и легко забыть (если не используешь) — yield, или оператор генераторной функции.
@zen_of_python
Вопрос от подписчика @andrul1kk:
«Не совсем понимаю разницу между yield и return».
Надеюсь, с английским у вас все в порядке, ибо короткое и действительно понятное видео про разницу между операторами есть в этом трехминутном видео. Непросто понять и легко забыть (если не используешь) — yield, или оператор генераторной функции.
@zen_of_python
🔥2🙏1
Python 1.0.0 вышел 31 год назад: с чего всё начиналось
Взгляните, как отличался язык 1.0.0 от сегодняшней «тройки»: много воды утекло, но даже тогда главная фича была та же — простой синтаксис. Сегодня язык возглавляет рейтинг TIOBE самых популярных ЯП.
#факт
@zen_of_python
Взгляните, как отличался язык 1.0.0 от сегодняшней «тройки»: много воды утекло, но даже тогда главная фича была та же — простой синтаксис. Сегодня язык возглавляет рейтинг TIOBE самых популярных ЯП.
#факт
@zen_of_python
❤🔥18
По просьбе подписчика
Вопрос задает подписчик Лёша Трошин:
«Расскажите как правильно работать с аргументами функции. Если в приложении например есть КОНСТАНТА то нужно ли ее передавать в функцию или же достаточно просто вызвать из глобальной области? Кажется это называется «чистота функции», расскажите про это пожалуйста. И может рекомендации по именованию аргументов внутри - передали аргумент в функцию, внутри функции имя аргумента такое же с суффиксом делать?»
От админа: сначала расскажем про (не)чистые функции, затем вернемся к вопросу про константы. Про рекомендации к именованию в разберем в отдельном посте.
Есть два важных подхода к проектированию: «чистые» и «нечистые» функции. Это способ описать её взаимодействие с окружающими ее потенциальными объектами.
Чистые функции не имеют «побочных эффектов» и всегда возвращают одинаковый результат для одних и тех же входных данных. Их можно свободно вызывать в любой среде, зная, что они не повлияют на состояние программы за пределами своей области. Они изолированы от остального кода.
Пример:
Эта функция берет два аргумента и возвращает их сумму. Результат зависит только от входных данных, и
Нечистые функции могут изменять состояние программы (то есть объектов в ней) или иметь побочные эффекты, такие как модификация глобальных переменных, вывод данных в консоль или работа с файлами. Предсказать результат программы с такой «участницей» порой бывает очень трудно, и потому в учебниках часто рекомендуют избегать таких функций в первые годы программирования.
Пример:
В этом примере функция
Идеальная программа должна сочетать в себе как можно больше чистых функций для большей предсказуемости, в то время как нечистые функции следует использовать только при необходимости взаимодействия с внешним миром.
Теперь к вопросу про константы (если верно понимаю вопрос).
В этой теме критически важно помнить про изменяемые и неизменяемые объекты, поскольку это влияет на их способность меняться под действием «грязных» функций:
Изменяемые объекты — списки, словари, множества, байтовые массивы. Неизменяемые объекты — числа, строки, кортежи, фиксированные множества.
В первом примере мы возьмем переменные
Намеренно слегка модифицируем
В локальной области видимости
Если теперь сделать
Обратите внимание, что в аргументы в скобки
#основы
@zen_of_python
Вопрос задает подписчик Лёша Трошин:
«Расскажите как правильно работать с аргументами функции. Если в приложении например есть КОНСТАНТА то нужно ли ее передавать в функцию или же достаточно просто вызвать из глобальной области? Кажется это называется «чистота функции», расскажите про это пожалуйста. И может рекомендации по именованию аргументов внутри - передали аргумент в функцию, внутри функции имя аргумента такое же с суффиксом делать?»
От админа: сначала расскажем про (не)чистые функции, затем вернемся к вопросу про константы. Про рекомендации к именованию в разберем в отдельном посте.
Есть два важных подхода к проектированию: «чистые» и «нечистые» функции. Это способ описать её взаимодействие с окружающими ее потенциальными объектами.
Чистые функции не имеют «побочных эффектов» и всегда возвращают одинаковый результат для одних и тех же входных данных. Их можно свободно вызывать в любой среде, зная, что они не повлияют на состояние программы за пределами своей области. Они изолированы от остального кода.
Пример:
a = 1
b = 2
def add(a, b):
return a + b
add(a, b)
Эта функция берет два аргумента и возвращает их сумму. Результат зависит только от входных данных, и
add()
не изменяет ничего вне своей области.Нечистые функции могут изменять состояние программы (то есть объектов в ней) или иметь побочные эффекты, такие как модификация глобальных переменных, вывод данных в консоль или работа с файлами. Предсказать результат программы с такой «участницей» порой бывает очень трудно, и потому в учебниках часто рекомендуют избегать таких функций в первые годы программирования.
Пример:
def append_element(lst, element):
lst.append(element)
my_list = [1, 2, 3]
append_element(my_list, 4)
print(my_list) # [1, 2, 3, 4]
В этом примере функция
append_element()
изменяет глобальную переменную my_list
. Каждый раз при вызове функции, состояние программы (то есть списка) изменяется.Идеальная программа должна сочетать в себе как можно больше чистых функций для большей предсказуемости, в то время как нечистые функции следует использовать только при необходимости взаимодействия с внешним миром.
Теперь к вопросу про константы (если верно понимаю вопрос).
В этой теме критически важно помнить про изменяемые и неизменяемые объекты, поскольку это влияет на их способность меняться под действием «грязных» функций:
Изменяемые объекты — списки, словари, множества, байтовые массивы. Неизменяемые объекты — числа, строки, кортежи, фиксированные множества.
В первом примере мы возьмем переменные
a
и b
, равные 1 и 2 соответственно, и отправить аргументами add()
:a = 1
b = 2
def add(a, b):
a += 1
return a + b
print(add(a, b)) # 4
print(a) # 1
Намеренно слегка модифицируем
add()
и добавим увеличение a на единицу (a += 1
), чтобы вы могли сравнить работу «чистой» и «грязной» функций.В локальной области видимости
add()
фактически создаются другие аргументы a
и b
. Поэтому при вызове a
вне функции мы получим исходное ее значение — единицу. Если теперь сделать
add()
«грязной», то таким образом:a = 1
b = 2
def add():
global a # Указываем, что будем использовать глобальную переменную a
a += 1 # Изменяем значение глобальной переменной
return a + b
print(add()) # Вывод: 4
print(a) # Теперь вывод: 2, так как a была изменена
Обратите внимание, что в аргументы в скобки
add()
при объявлении функции теперь не подаются. Если вызывать из глобальной функции a
, то она фактически больше не является константой (становится переменной). #основы
@zen_of_python
✍2
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
❤2
79 рублей в месяц за Ubuntu 1 Гб RAM, 8 Гб SSD, 1 ядро, публичный IP-адрес. Аптайм весьма высокий.
А вы где берете минимальные сервера? Поделитесь в комментариях.
#обсуждение
@zen_of_python
А вы где берете минимальные сервера? Поделитесь в комментариях.
#обсуждение
@zen_of_python
👍4❤🔥1
Придумайте подпись к фото, но так, чтобы это относилось к языку программирования.
Победители прошлого интерактива — @kirillkasparyants1 и @insigmo.
#кек
Победители прошлого интерактива — @kirillkasparyants1 и @insigmo.
#кек
Подборка лучших вымышленных обложек в стиле o'Reilly, описывающих жизнь типичного Python-разработчика.
Полный список книг здесь.
Полный список книг здесь.
😁4