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

Как создать исполняемые файлы для Python (от .PY до .EXE)

Сегодня мы увидим, как создавать исполняемые файлы, начиная с наших скриптов Python, чтобы мы могли легко запускать и делиться нашими программами, так как после того, как мы создадим эти приложения, которые мы создадим из наших файлов, будет достаточно щелкнуть по ним, чтобы запустить их, без необходимости установки в системе интерпретатора Python или другие зависимости!

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

Для этого мы будем использовать инструмент под названием pyinstaller.

Pyinstaller отлично работает как в Windows, так и в Linux и Mac OS, и поэтому все команды, которые мы покажем вам в этой статье, будут такими же, что и вам, независимо от того, в какой операционной системе вы находитесь.

Также очень важно помнить, что pyinstaller не является кросс-компилятором, или, как многие из вас уже предполагали, вы можете создавать исполняемые файлы только для используемой вами операционной системы.

Если вы хотите создать файл .exe, например, а затем исполняемый файл для Windows, вы можете сделать это только из Windows. То же самое относится к файлам .app, которые можно использовать в Mac OS, и для исполняемых файлов Linux.

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

pip install pyinstaller

 

После того, как это будет сделано, мы можем использовать его как любое программное обеспечение в командной строки, точно так же, как мы устанавливаем модули через pip:

pyinstaller script_name.py --onefile

 

Давайте посмотрим на вывод в папке, над которой мы работаем, и увидим, что были созданы некоторые новые файлы и папки.

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

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

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

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

pyinstaller script_name.py --noconsole --onefile

 

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

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

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

Удачного кодирования! : D



2019-12-10T00:14:46
Python

NodeJS против Python: сравнение, которое нужно знать

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

 

Python: плюсы, минусы и варианты использования

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

У Python одно из крупнейших сообществ, а это значит, что вы получите всю необходимую поддержку.

NodeJS против Python: сравнение, которое нужно знать

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

 

Python. Преимущества

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

 

Python сокращает время выхода на рынок

Python позволяет разработчикам выполнять работу с меньшим количеством строк кода, чем схожие объектно-ориентированные языки. Кроме того, большинству разработчиков также удобно переключаться между Java и Python (и поэтому вы видите, что они используются в тандеме). Python предлагает полное обслуживание, где ошибки могут быть устранены в течение нескольких минут. С его компактным синтаксисом легко работать, а также легко отлаживать

Благодаря методологии быстрой разработки Python, которая позволяет вам поддерживать несколько итераций одновременно, и принципу DRY (не повторяйте себя), который означает, что вы можете повторно использовать части кода.

 

Синтаксис Python

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

 

Python имеет широкий спектр инструментов разработки

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

 

Python имеет большое сообщество

Сравнивая Python и Node.js, Python является более зрелым языком с открытым исходным кодом и имеет одно из крупнейших пользовательских сообществ. В нем невероятное количество участников, от младших до опытных. Это означает, по крайней мере, две вещи: легко найти разработчиков, и вы получите активное, поддерживающее сообщество, которое стремится делиться решениями и улучшать язык.

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

  • Django
  • Flask
  • Pyramids

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

 

Python. Минусы

Python отлично подходит для большинства типов проектов, но у него есть пара ограничений:

 

Python однопоточный

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

 

Не подходит для мобильных компьютеров

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

 

NodeJS: плюсы, минусы и варианты использования NodeJS

Node.js — это среда, которая позволяет использовать JavaScript как для внутренней, так и для внешней разработки, что решает некоторые проблемы совместимости. Он был запущен в 2009 году (не так давно) и неуклонно набирает популярность.

NodeJS против Python: сравнение, которое нужно знать

 

Node.js. Плюсы

Сравнивая Python и Node.js для веб-разработки, Node может похвастаться несколькими преимуществами:

  • Node.js обеспечивает высокую производительность.

    Сравнивая скорость, вы обнаружите, что первая быстрее. Node.js основан на движке Google V8, что делает его пригодным для разработки чат-ботов и аналогичных приложений реального времени.

 

Node.js. Минусы

  • Node.js требует четкой архитектуры.

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

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

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

 

Вывод

Трудно сказать, что один язык программирования лучше другого, потому что все относительно. Что лучше для вашего проекта, будет зависеть от опыта вашей команды и конкретных требований проекта. У них обоих есть свои преимущества и недостатки, и они используются для различных видов проектов. Поэтому, когда вы выбираете между Node.js или Python, вам нужно рассмотреть все плюсы и минусы, чтобы решить, какой из них наиболее подходит для вашего проекта.



2019-12-08T21:11:17
Python

Python: __name__ == «__main__»

Вы видите это везде.

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

if __name__ == '__main__':

  # do something

 

Он вездесущий.

Фактически, именно столько раз этот фрагмент кода появляется в Github!

Python: __name__ == «__main__»

18 миллионов + раз!

Итак, без дальнейших церемоний, давайте изучим, что именно делает этот фрагмент кода.

 

Что такое __name__?

__name__ — это просто встроенная переменная в Python, которая оценивает имя текущего модуля.

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

 

Пример 1

Давайте создадим простой скрипт Python в файле с именем test.py

# test.py

print("__name__ в test.py имеет значение " + __name__)

 

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

Давайте запустим этот скрипт из терминала и посмотрим, что мы получим.

$ python test.py

 

Вот вывод, который вы увидите на экране.

$ python3 test.py

__name__ в test.py имеет значение __main__

 

Из этого можно сделать вывод, что в этом примере переменной __name__ было присвоено строковое значение __main__

Теперь давайте посмотрим на немного другой пример.

 

Пример 2

Давайте создадим новый файл test2.py  в том же каталоге, что и test.py

В этом новом файле давайте импортируем test, чтобы мы могли проверить переменную __name__ в test.py, а также напечатаем переменную __name__ в test2.py

# test2.py

import test



print("__name__ in test2.py имеет значение " + __name__)

 

Если вы запустите скрипт test2.py из терминала, это то, что вы увидите на своем экране.

$ python3 test2.py

__name__ in test.py имеет значение test

__name__ in test2.py имеет значение __main__

 

Хм, интересно, так что же происходит?

По сути, происходит то, что  __name__   устанавливается на уровне модуля.

Устанавливается на  имя  модуля. Другими словами, для каждого модуля в вашем коде, __name__ будет установлен на это имя модуля.

А для точки входа выполнения, основного сценария Python, переменная __name__будет установлена ​​в __main__

Это круто и все, но как эта специальная переменная используется на практике?

 

Как __name__ используется в реальных приложениях?

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

Например, давайте создадим фиктивный модуль hello.py, который другие смогут импортировать в свои собственные сценарии или могут напрямую выполнить его, если захотят.

Вот что должен делать этот модуль.

Если вы выполняете модуль напрямую, он должен напечатать Привет, AndreyEx на экране.

Но если вы вместо этого импортируете его, он может предоставить вам функцию hello(), где вы можете контролировать, кого приветствовать.

# hello.py

def hello(name):

  print(f"Привет, {name}!")



if __name__ == '__main__':

  hello('AndreyEx')

 

Теперь давайте создадим основной скрипт main.py, который будет импортировать модуль hello.

# main.py

from hello import hello



hello('Destroyer')

 

Как вы думаете, что произойдет, если мы напрямую запустим hello.py ?

Мы просто получаем Привет, AndreyEx! на экране, так как условие if внутри модуля hello будет выполнено!

$ python3 hello.py

Привет, AndreyEx!

 

Как насчет того, чтобы вместо этого мы выполним main.py?

Теперь мы получим только Привет, AndreyEx! напечатано на экране.

$ python3 main.py

Привет, Destroyer!

 

Но что, если мы не включили условие if __name__ == ‘main’ в модуль hello ?

Если вы не включили условие if в свой модуль, вы получите этот нежелательный результат при запуске основного скрипта.

$ python3 main.py

Привет, AndreyEx!

Привет, Destroyer!

 



2019-12-06T19:10:46
Python

Основные типы данных в Python 3: Строки

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

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

Готовы научиться использовать строки в Python 3? Давайте начнем!

 

Строки в Python 3

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

my_name = "AndreyEx Destroyer"

 

Строки являются » неизменяемыми»

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

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

 

Общая задача — объединить строки

Объединение строк — очень распространенная задача. В Python 3 вы можете использовать оператор + для этой цели. Вы можете использовать + оператор несколько раз, чтобы объединить несколько строк.

first_name = "AndreyEx" 

last_name = "Destriyer"



full_name = first_name + "" + last_name

 

Общая задача — вставка данных в строки

Другая распространенная задача со строками — вставка данных в определенное место в строке. В программировании мы называем эту строку интерполяцией . Python 3 предоставляет удобный инструмент для этого, называемый «f» строк . «F» в «f strings» обозначает формат — вы можете вставлять другие данные из вашей программы в строку, когда вы ее определяете, вместо того, чтобы выполнять сложную конкатенацию строк, как показано ранее.

Вот пример создания отформатированной строки — обратите внимание, что буква f включается непосредственно перед первой двойной кавычкой при определении переменной message. Если вы хотите вставить данные из вашей программы в строку, вы можете включить их между двумя «фигурными скобками» — символами {}.

first_name = "AndreyEx" 

last_name = "Destroyer" 

age = 41

message = f "Меня зовут {first_name} {last_name}, и мне {age} лет."

print(message)

 

Распространенная задача — использование встроенных строковых методов для работы со строками

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

Пример 1: преобразовать строку во все заглавные буквы, используя метод upper.

example_string = "Я уже достаточно гениален?" 

example_string = example_string . upper() 

print(example_string) # печатает "Я УЖЕ ДОСТАТОЧНО ГЕНИАЛЕН?"

 

Пример 2: Заменить все вхождения слова Ubuntu на CentOS.

example_string = "Что у нас за система? Не ужели Ubuntu" 

example_string = example_string . replace ( "Ubuntu" ,  "CentOS" ) 

print(example_string) # "печатает Что у нас за система? Неужели Ubuntu"

 

Пример 3: Разбить строку через запятую в список строк.

example_string =  "Ubuntu,CuntOS,OpenSUSE"

groceries =  example_string.split( ' ,') 



# Код ниже печатает:

# Ubuntu

# CuntOS

# OpenSUSE

for item in groceries: 

    print( item)

 

Проверьте наши дополнительные строки в документации по Python 3!

 

Конвертация

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

Пример 1. Преобразование числа в строку с помощью функции str.

example_number = 42

converted = str(example_number)

message = "ubuntu forever " + converted

Пример 2. Преобразование строки в целое число (целое число) с помощью int.

example_string = "2" 

convert = int (example_string) 

message = f "Два плюс два равно {преобразовано + 2}"

 

Завершение

Текстовые строки — одна из самых распространенных частей данных, с которыми вы будете работать в программировании. Надеюсь, вы немного узнали о том, как работать со строками в Python 3!



2019-12-02T18:52:22
Python

Основные типы данных в Python 3. Логические значения

Сегодня мы рассмотрим ключевые типы данных — логические значения. Логические значения (и «логическия логика») являются важной концепцией в программировании, представляющей понятия «истина» и «ложь».

Готовы научиться использовать логические выражения в Python 3? Давайте начнем!

 

Логические переменные в Python 3

Booleans — это концепция, которая существует в каждом языке программирования. Логическое значение представляет идею «истина» или «ложь». Когда вы пишете программу, часто бывают ситуации, когда вы хотите выполнить другой код в разных ситуациях. Логические значения позволяют нашему коду делать именно это.

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

mullet_looks_good = False 

python_is_fun = True

 

Чаще всего логическое значение возвращается в результате какого-либо сравнения. В следующем примере кода будет храниться логическое значение переменной False в переменной have_same_name после использования оператора сравнения символа равенства ==.

my_name = "Wammu" 

your_name = "AndreyEx"



have_same_name = my_name == your_name

 

Логические значения

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

my_age = 10



if my_age > = 50: 

  print(«Пятьдесят лет! Очень впечатляет.») 

elif my_age <= 3: 

  print(«Ой, просто ребенок.») 

else : 

  print(«Ах, очень хороший возраст»)

 

В дополнение к проверке на ture, вы также можете проверить, если условия не соответствуют действительности, используя ключевое слово not.

favorite_team =  "AndreyEx"



if not favorite_team = =  "AndreyEx": 

  print("неудачно. 

)else: 

  print("Да, AndreyEx!")

 

Более сложная логическая логика

Иногда вам нужно будет оценить несколько условий в вашей логической логике. Для этой цели вы будете сочетать andи orключевые слова. andКлючевое слово сравнивает два логических значения и возвращает , Trueесли оба они истинны. orКлючевое слово сравнивает два значения и возвращают , Trueесли какие — либо из утверждений верно.

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

favs = ["CentOS", "Ubuntu"]



if "Ubuntu" in favs and "CentOS" in favs:

  print("Это хорошие операционные системы!")

elif "Ubuntu" in favs or "CentOS" in favs:

  print("Ну очень сложно выбрать...")

else:

  print("Я выбрал что то другое.")

 

Завершение

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



2019-11-29T16:12:02
Python

4 совета по оптимизации производительности для более быстрого кода на Python

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

 

1. Подготовьте все настройки заранее.

Это здравый смысл. Подготовьте все настройки. Запустите ваш редактор Python заранее. Если вы пишете свои файлы локально, создайте виртуальную среду и активируйте ее. Наряду с этим, мы бы посоветовали еще одну вещь, которая может показаться немного противоречивой и нелогичной, а именно использовать TDD. Используйте этот инструмент тестирования. Мы обычно использую pytest и используем «pip» -d в виртуальной среде и начинаем писать небольшие тестовые сценарии. Мы обнаружили, что тестирование помогает в ясности мысли, которая помогает в написании более быстрых программ. Кроме того, это помогает в рефакторинге кода, чтобы сделать его быстрее. Мы вернемся к этому позже.

 

2. Получите код, работающий первым

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

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

 

3. Советы по программированию на Python

Мы можем использовать некоторые конструкции кода pythonic, которые дают нам лучшую производительность. Давайте посмотрим на них ниже.

 

Строки:

Не используйте нижеприведенную конструкцию.

s = ""

for x in somelist:

s += some_function(x)

 

Вместо этого используйте это

slist = [some_function(el) for el in somelist]

s = "".join(slist)

 

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

 

Языковые конструкции:

Функции: Создайте функции из своего кода, и хотя процедурный код поддерживается в Python, лучше писать их в функциях. Возможно, вы слышали этот совет от сторонников повторного использования кода и сторонников TDD (примечание: я один из них), но здесь мы бы сказали, что функции лучше, потому что они быстрее. Так

def main():

for i in xrange(10**8):

pass



main()

 

Это лучше, чем

for i in xrange(10**8):

pass

 

Это из-за базовой реализации CPython. Короче говоря, хранить локальные переменные быстрее, чем глобальные.

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

def solution(args):

# write the code

pass



def main():

# write the input logic to take the input from STDIN

Input_args = ""

solution(input_args)



If __name__ == "__main__":

main()

 

Используйте стандартную библиотеку:

Используйте как можно больше встроенных функций и стандартной библиотеки. Поэтому вместо этого:

newlist = []

for item in oldlist:

newlist.append(myfunc(item))

 

Использовать это:

newlist = map(myfunc, oldlist)

 

Существует также список выражений или генератор выражений.

newlist = [myfunc(item) for item in oldlist] # list expression

newlist = (myfunc(item) for item in oldlist) # generator expression

 

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

>> import itertools

>>> iter = itertools.permutations([1,2,3])

>>> list(iter)

[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

 

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

 

Генераторы:

Генератор Python — это функция, которая возвращает итератор генератора (просто объект, который мы можем перебрать), вызывая yield. Когда функция генератора вызывает yield, «состояние» функции генератора останавливается; Значения всех переменных сохраняются, и следующая строка кода, которая должна быть выполнена, записывается до следующего вызова (). Генераторы — это отличные конструкции, позволяющие снизить как среднюю сложность времени, так и объем памяти кода, который вы написали. Просто посмотрите на следующий код для простых чисел.

def fib():

a, b = 0, 1

while 1:

yield a

a, b = b, a + b

 

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

 

4. Алгоритмы и структуры данных

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

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

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



2019-11-21T19:07:50
Python