Как писать на python в visual studio
Перейти к содержимому

Как писать на python в visual studio

  • автор:

Разработка на Python в Visual Studio Code

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

В этом мануале вы узнаете, как работать с Python в Visual Studio Code. Мануал поможет установить расширение Python в Visual Studio Code, научит пользоваться IntelliSense и расскажет о горячих клавишах для запуска кода Python.

Требования

  • Установка Python и настроенная локальная среда разработки. Необходимые инструкции вы найдете в мануале Установка Python 3 и настройка среды разработки на сервере Ubuntu 18.04 (если вы используете другую систему, найдите мануал для нее в этом разделе).
  • Установка Visual Studio Code (для этого посетите официальную страницу загрузки).

1: Запуск кода Python из встроенного терминала

Установив Python и включив локальную среду разработки, откройте Visual Studio Code.

В интерфейсе Visual Studio Code откройте каталог, в котором вы работаете. Для этого нажмите File -> Open и выберите каталог. После этого вы увидите, что ваш каталог открыт в окне слева.

Теперь вы можете создать свой первый файл Python (с расширением .py) и добавить в него код простой тестовой программы «Hello World». Создайте файл demo.py и вставьте в него строку:

Теперь, когда у вас есть готовый код Hello World, мы можем запустить его с помощью встроенного терминала в Visual Studio Code. Если терминал еще не открыт, вы можете открыть его, выбрав View -> Terminal или воспользовавшись сочетанием клавиш CTRL+

Терминал, который вы только что открыли, автоматически запустится в текущем каталоге, который вы редактируете в Visual Studio Code. Именно поэтому мы сначала создали и открыли каталог. Вы можете убедиться, что терминал открыт именно в этом каталоге, запустив следующую команду:

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

Теперь вы можете запустить ваш файл Python с помощью следующей команды:

После запуска вы увидите фразу Hello World на консоли.

2: Установка расширений Python

Чтобы упростить процесс работы с Python в Visual Studio, можно установить расширение Python, разработанное Microsoft. Чтобы установить его, откройте меню расширений слева (значок выглядит как квадрат внутри квадрата, пятый сверху) и найдите Python.

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

После установки может потребоваться перезагрузка. Если нужно, сделайте это.

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

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

Чтобы начать работать с IntelliSense, создайте пустой массив по имени list.

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

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

Вы также можете использовать intellisense при импорте модулей в Python. К примеру, если вы импортируете модуль random:

intellisense подскажет, как завершить имя модуля, а также предоставит информацию о том, что он делает.

Если позже вы будете использовать модуль random, intellisense подскажет, какие функции доступны для этого модуля.

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

3: Горячие клавиши для запуска кода Python

Теперь давайте рассмотрим небольшой фрагмент алгоритма Bubble Sort. Он вызывает функцию bubble_sort и выводит результат. Вы можете скопировать этот код в свой файл:

def bubble_sort(list):
sorted_list = list[:] is_sorted = False
while is_sorted == False:
swaps = 0
for i in range(len(list) — 1):
if sorted_list[i] > sorted_list[i + 1]: # swap
temp = sorted_list[i] sorted_list[i] = sorted_list[i + 1] sorted_list[i + 1] = temp
swaps += 1
print(swaps)
if swaps == 0:
is_sorted = True
return sorted_list
print(bubble_sort([2, 1, 3]))

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

Внутри любого файла Python в редакторе вы можете щелкнуть правой кнопкой мыши и выбрать Run Python File In Terminal. Эта команда запустит файл, и он выполнит все свои действия. После этого вы увидите вывод bubble_sort на консоли.

Также есть горячие клавиши, которые открывают оболочку REPL, где вы можете быстро ввести код Python прямо в консоль и увидеть результат. Откройте командную панель с помощью сочетания клавиш CMD+SHIFT+P на Mac или CTRL+SHIFT+P в Windows и выберите Python Start REPL.

После ввода команды print на консоли сразу появится вывод Hello World.

Заключение

Python – невероятно популярный язык с надежной поддержкой в Visual Studio Code. Установив расширение Python, вы получите доступ к Python intellisense, автодополнению и полезным сочетаниям клавиш.

Первый проект Python в Visual Studio 2017

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

Бэкграунд

Если у вас нет готовой среды Python и вы готовы работать с Visual Studio, не беспокойтесь. Вы можете следовать нашей предыдущей статье «Установка и тестирование среды Python в Visual Studio 2017». Итак, давайте начнем и создадим наш первый проект Python. Visual Studio является лучшей IDE для языка программирования .NET, но теперь она также поддерживает Python. Итак, мы можем создать проект Python и написать код в Visual Studio. При написании кода Python в Visual Studio мы можем использовать все функции Visual Studio, такие как отладка, intellisense и т. д. У нас есть другой шаблон для создания проекта Python в Visual Studio, например, вы можете создать простой проект или создать один. файл, где вы можете написать свой код Python и запустить его. Если вы заинтересованы в создании веб-приложения с использованием Python в Visual Studio, то у нас есть шаблоны Django и Flask, которые обеспечивают полную готовность готового шаблона. Здесь мы попытаемся создать простой проект Python.

Реализация

Сначала откройте Visual Studio 2017 или более позднюю версию, откройте меню «File» и выберите «New», а затем «Project». Откроется окно «New Project», из которого мы можем выбрать различные виды шаблонов приложений. Но давайте выберем Python из установленного раздела [Левая панель] и на средней панели выберите «Python Application» и укажите подходящее имя и местоположение для этого приложения, как показано на следующем рисунке, и нажмите «ОК».

Таким способом подготовка проекта займет несколько секунд. На следующем рисунке показана базовая структура приложения Python, мы можем расширить ее в соответствии с нашими требованиями. Здесь вы найдете «Python Environments», где будет работать наше приложение. Помимо этого, он имеет один файл «FirstPythonDemo.py».

Проект готов с одним файлом Python, и мы готовы написать нашу первую программу. Итак, давайте напишем первую программу на python следующим образом и запустим ее. Здесь мы собираемся напечатать что-то вроде сообщения.

print ( ‘This is my first python program’ )

Теперь давайте запустим программу в Visual Studio 2017, как обычно мы делаем, чтобы запустить программу с использованием F5, и вы получите следующий результат:

Отлично, мы можем запустить наш первый проект на Python в Visual Studio. Мы не думаем, что у вас возникнет проблема, если вы будете следовать всем шаг за шагом и ваша среда Python будет правильно настроена. Давайте расширим вышеуказанную программу и добавим еще немного кода, чтобы понять Python.

# Example 1
print ( ‘This is my first python program’ )

# Example 2
x =5
y =4
z=x+y
print ( ‘The sum of <> and <> is <>‘ .format(x,y,z))

# Example 3
def sayHello():
print ( ‘Hello Programmer’ )

sayHello()

Здесь выше, у нас есть три основных примера в Python. Первый, как было сказано выше, — лишь печать текста. Во втором примере мы объявляем две переменные как x и y и добавляем обе в третью переменную как z и выводим вывод. В третьем примере мы создаем один метод как sayHello () и вызываем его. Давайте запустим программу и посмотрим вывод.

Вышеуказанный результат соответствует ожиданиям. Первый — это печать текста, второй — вывод суммы 5 и 4, а третий — метод, который снова печатает некоторый текст.

Давайте разберемся немного подробнее со свойствами проекта Python. Иногда требуется работать с какой-либо другой версией Python, это может быть более высокая версия или более низкая версия. Это можно изменить в окнах свойств проекта. Щелкните правой кнопкой мыши по проекту и перейдите к свойствам, здесь, в общем разделе, вы найдете Интерпретатор с некоторыми из установленных версий Python, как показано на следующем рисунке. Вы можете изменить его, если хотите. На вкладке General мы также можем изменить файл запуска и сделать другой файл python файлом запуска.

Заключение

Итак, сегодня мы узнали, как создать наш первый проект Python в Visual Studio 2017, запустить первую программу и расширить ее. Надеемся, что этот пост поможет вам.

Как настроить python для работы в Visual Studio Code

Несмотря на то, что python это очень простой язык программирования (*с точки зрения синтаксиса и семантики), у некоторых возникают сложности на самом первом этапе — запуска созданной программы.

В этой статье я постараюсь максимально подробно описать все шаги для этого процесса. При этом мы будем использовать один из самых популярных IDE (Integrated Development Environment или Встроенная Среда Разработчика) — Visual Studio Code (В дальнейшем VSC).

Откройте VSC и нажмите на: File -> Open Folder (Файл -> Открыть Папку)

Далее необходимо создать новый терминал для запуска ваших программ, а также создания виртуального окружения. Для этого в шапке VSC выберите: Terminal -> New Terminal (Терминал -> Новый Терминал). Либо нажмите сочетание клавиш на клавиатуре: Ctrl + Shift + ` (Тильда)

В терминале вводим операцию: py -m venv env (Если использование py выдаст вам ошибку, то попробуйте вместе этой операции использовать одну из перечисленных: python, python3)

Данная операция создаст новое виртуальное окружение и позволит нам изолировать используемые модули в нашей программе.

Далее активируем виртуальное окружение: env\Scripts\activate

Тут важно использовать именно обратные слэши для операционной системы Windows. На Mac OS операция будет выглядеть следующим образом: source env/bin/activate

Если вы сделали все правильно, то увидите префикс (env) в консоли.

Python Development in Visual Studio Code

Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Python Development in Visual Studio Code (Setup Guide)

One of the coolest code editors available to programmers, Visual Studio Code, is an open-source, extensible, light-weight editor available on all platforms. It’s these qualities that make Visual Studio Code from Microsoft very popular, and a great platform for Python development.

In this article, you’ll learn about Python development in Visual Studio Code, including how to:

  • Install Visual Studio Code
  • Discover and install extensions that make Python development easy
  • Write a straightforward Python application
  • Learn how to run and debug existing Python programs in VS Code
  • Connect Visual Studio Code to Git and GitHub to share your code with the world

We assume you are familiar with Python development and already have some form of Python installed on your system (Python 2.7, Python 3.6/3.7, Anaconda, or others). Screenshots and demos for Ubuntu and Windows are provided. Because Visual Studio Code runs on all major platforms, you may see slightly different UI elements and may need to modify certain commands.

If you already have a basic VS Code setup and you’re hoping to dig deeper than the goals in this tutorial, you might want to explore some advanced features in VS Code.

Free Bonus: 5 Thoughts On Python Mastery, a free course for Python developers that shows you the roadmap and the mindset you’ll need to take your Python skills to the next level.

Installing and Configuring Visual Studio Code for Python Development

Installing Visual Studio Code is very accessible on any platform. Full instructions for Windows, Mac, and Linux are available, and the editor is updated monthly with new features and bug fixes. You can find everything at the Visual Studio Code website:

Visual Studio Code Web Site

In case you were wondering, Visual Studio Code (or VS Code for short) shares almost nothing other than a name with its larger Windows-based namesake, Visual Studio.

Note: To learn how to set up VS Code as part of a full Python coding environment on a Windows machine, check out this comprehensive guide.

Visual Studio Code has built-in support for multiple languages and an extension model with a rich ecosystem of support for others. VS Code is updated monthly, and you can keep up to date at the Microsoft Python blog. Microsoft even makes the VS Code GitHub repo available for anyone to clone and contribute. (Cue the PR flood.)

The VS Code UI is well documented, so I won’t rehash it here:

Visual Studio Code Welcome Screen

Extensions for Python Development

As stated above, VS Code supports development in multiple programming languages through a well-documented extension model. The Python extension enables Python development in Visual Studio Code, with the following features:

  • Support for Python 3.4 and higher, as well as Python 2.7
  • Code completion with IntelliSense
  • Automatic use of conda and virtual environments
  • Code editing in Jupyter environments and Jupyter Notebooks

Visual Studio Code extensions cover more than just programming language capabilities:

Keymaps allow users already familiar with Atom, Sublime Text, Emacs, Vim, PyCharm, or other environments to feel at home.

Themes customize the UI whether you like coding in the light, dark, or something more colorful.

Language packs provide a localized experience.

Here are some other extensions and settings I find useful:

GitLens provides tons of useful Git features directly in your editing window, including blame annotations and repository exploration features.

Auto save is easily turned on by selecting File, Auto Save from the menu. The default delay time is 1000 milliseconds, which is also configurable.

Settings Sync allows you to synchronize your VS Code settings across different installations using GitHub. If you work on different machines, this helps keep your environment consistent across them.

Docker lets you quickly and easily work with Docker, helping author Dockerfile and docker-compose.yml , package and deploy your projects, and even generate the proper Docker files for your project.

Of course, you may discover other useful extensions as you use VS Code. Please share your discoveries and settings in the comments!

Discovering and installing new extensions and themes is accessible by clicking on the Extensions icon on the Activity Bar. You can search for extensions using keywords, sort the results numerous ways, and install extensions quickly and easily. For this article, install the Python extension by typing python in the Extensions item on the Activity Bar, and clicking Install:

You can find and install any of the extensions mentioned above in the same manner.

Visual Studio Code Configuration Files

One important thing to mention is that Visual Studio Code is highly configurable through user and workspace settings.

User settings are global across all Visual Studio Code instances, while workspace settings are local to the specific folder or project workspace. Workspace settings give VS Code tons of flexibility, and I call out workspace settings throughout this article. Workspace settings are stored as .json files in a folder local to the project workspace called .vscode .

Start a New Python Program

Let’s start our exploration of Python development in Visual Studio Code with a new Python program. In VS Code, type Ctrl + N to open a new File. (You can also select File, New from the menu.)

Note: The Visual Studio Code UI provides the Command Palette, from which you can search and execute any command without leaving the keyboard. Open the Command Palette using Ctrl + Shift + P , type File: New File , and hit Enter to open a new file.

No matter how you get there, you should see a VS Code window that looks similar to the following:

Creating a new file in VSCode

Once a new file is opened, you can begin entering code.

Entering Python Code

For our test code, let’s quickly code up the Sieve of Eratosthenes (which finds all primes less than a given number). Begin typing the following code in the new tab you just opened:

You should see something similar to this:

Unformatted code in VSCode

Wait, what’s going on? Why isn’t Visual Studio Code doing any keyword highlighting, any auto-formatting, or anything really helpful? What gives?

The answer is that, right now, VS Code doesn’t know what kind of file it’s dealing with. The buffer is called Untitled-1 , and if you look in the lower right corner of the window, you’ll see the words Plain Text.

To activate the Python extension, save the file (by selecting File, Save from the menu, File:Save File from the Command Palette, or just using Ctrl + S ) as sieve.py . VS Code will see the .py extension and correctly interpret the file as Python code. Now your window should look like this:

Properly formatted Python code in VSCode

That’s much better! VS Code automatically reformats the file as Python, which you can verify by inspecting the language mode in the lower left corner.

If you have multiple Python installations (like Python 2.7, Python 3.x, or Anaconda), you can change which Python interpreter VS Code uses by clicking the language mode indicator, or selecting Python: Select Interpreter from the Command Palette. VS Code supports formatting using pep8 by default, but you can select black or yapf if you wish.

Let’s add the rest of the Sieve code now. To see IntelliSense at work, type this code directly rather than cut and paste, and you should see something like this:

Here’s the full code for a basic Sieve of Eratosthenes:

As you type this code, VS Code automatically indents the lines under for and if statements for you properly, adds closing parentheses, and makes suggestions for you. That’s the power of IntelliSense working for you.

Running Python Code

Now that the code is complete, you can run it. There is no need to leave the editor to do this: Visual Studio Code can run this program directly in the editor. Save the file (using Ctrl + S ), then right-click in the editor window and select Run Python File in Terminal:

You should see the Terminal pane appear at the bottom of the window, with your code output showing.

Python Linting Support

You may have seen a pop up appear while you were typing, stating that linting was not available. You can quickly install linting support from that pop up, which defaults to PyLint. VS Code also supports other linters. Here’s the complete list at the time of this writing:

  • pylint
  • flake8
  • mypy
  • pydocstyle
  • pep8
  • prospector
  • pyllama
  • bandit

The Python linting page has complete details on how to setup each linter.

Note: The choice of linter is a project workspace setting, and not a global user setting.

Editing an Existing Python Project

In the Sieve of Eratosthenes example, you created a single Python file. That’s great as an example, but many times, you’ll create larger projects and work on them over a longer period of time. A typical new project work flow might look like this:

  • Create a folder to hold the project (which may include a new GitHub project)
  • Change to the new folder
  • Create the initial Python code using the command code filename.py

Using Visual Studio Code on a Python project (as opposed to a single Python file) opens up tons more functionality that lets VS Code truly shine. Let’s take a look at how it works with a larger project.

Late in the previous millennium, when I was a much younger programmer, I wrote a calculator program that parsed equations written in infix notation, using an adaptation of Edsger Dijkstra’s shunting yard algorithm.

To demonstrate the project-focused features of Visual Studio Code, I began recreating the shunting yard algorithm as an equation evaluation library in Python. To continue following along, feel free to clone the repo locally.

Once the folder is created locally, you can open the entire folder in VS Code quickly. My preferred method (as mentioned above) is modified as follows, since I already have the folder and basic files created:

VS Code understands, and will use, any virtualenv, pipenv, or conda environments it sees when opened this way. You don’t even need to start the virtual environment first! You can even open a folder from the UI, using File, Open Folder from the menu, Ctrl + K , Ctrl + O from the keyboard, or File:Open Folder from the Command Palette.

For my equation eval library project, here’s what I see:

PyEval folder open in VSCode

When Visual Studio Code opens the folder, it also opens the files you last had opened. (This is configurable.) You can open, edit, run, and debug any file listed. The Explorer view in the Activity Bar on the left gives you a view of all the files in the folder and shows how many unsaved files exist in the current set of tabs.

Testing Support

VS Code can automatically recognize existing Python tests written in the unittest framework, or the pytest or Nose frameworks if those frameworks are installed in the current environment. I have a unit test written in unittest for the equation eval library, which you can use for this example.

To run your existing unit tests, from any Python file in the project, right-click and select Run Current Unit Test File. You’ll be prompted to specify the test framework, where in the project to search for tests, and the filename pattern your tests utilize.

All of these are saved as workspace settings in your local .vscode/settings.json file and can be modified there. For this equation project, you select unittest , the current folder, and the pattern *_test.py .

Once the test framework is set up and the tests have been discovered, you can run all your tests by clicking Run Tests on the Status Bar and selecting an option from the Command Palette:

You can even run individual tests by opening the test file in VS Code, clicking Run Tests on the Status Bar, and selecting the Run Unit Test Method… and the specific test to run. This makes it trivial to address individual test failures and re-run only failed tests, which is a huge time-saver! Test results are shown in the Output pane under Python Test Log.

Debugging Support

Even though VS Code is a code editor, debugging Python directly within VS Code is possible. VS Code offers many of the features you would expect from a good code debugger, including:

  • Automatic variable tracking
  • Watch expressions
  • Breakpoints
  • Call stack inspection

You can see them all as part of the Debug view on the Activity Bar:

Finding the Debug UI in VSCode

The debugger can control Python apps running in the built-in terminal or an external terminal instance. It can attach to an already running Python instances, and can even debug Django and Flask apps.

Debugging code in a single Python file is as simple as starting the debugger using F5 . You use F10 and F11 to step over and into functions respectively, and Shift + F5 to exit the debugger. Breakpoints are set using F9 , or using the mouse by clicking in the left margin in the editor window.

Before you start debugging more complicated projects, including Django or Flask applications, you need to setup and then select a debug configuration. Setting up the debug configuration is relatively straightforward. From the Debug view, select the Configuration drop-down, then Add Configuration, and select Python:

Adding a new debug configuration to VSCode

Visual Studio Code will create a debug configuration file under the current folder called .vscode/launch.json , which allows you to setup specific Python configurations as well as settings for debugging specific apps, like Django and Flask.

You can even perform remote debugging, and debug Jinja and Django templates. Close the launch.json file in the editor and select the proper configuration for your application from the Configuration drop-down.

Git Integration

VS Code has built-in support for source control management, and ships with support for Git and GitHub right out of the box. You can install support for other SCM’s in VS Code, and use them side by side. Source control is accessible from the Source Control view:

Source Control UI in VSCode

If your project folder contains a .git folder, VS Code automatically turns on the full range of Git/GitHub functionality. Here are some of the many tasks you can perform:

    to Git
  • Push changes to, and pull changes from, remote repos
  • Check-out existing or create new branches and tags
  • View and resolve merge conflicts

All of this functionality is available directly from the VS Code UI:

Git Commands in VSCode

VS Code will also recognize changes made outside the editor and behave appropriately.

Committing your recent changes within VS Code is a fairly straightforward process. Modified files are shown in the Source Control view with an M marker, while new untracked files are marked with a U. Stage your changes by hovering over the file and then clicking the plus sign (+). Add a commit message at the top of the view, and then click the check mark to commit the changes:

Committing changes in VSCode

You can push local commits to GitHub from within VS Code as well. Select Sync from the Source Control view menu, or click Synchronize Changes on the status bar next to the branch indicator.

Conclusion

Visual Studio Code is one of the coolest general purpose editors and a great candidate for Python development. In this article, you learned:

  • How to install VS Code on any platform
  • How to find and install extensions to enable Python-specific features
  • How VS Code makes writing a simple Python application easier
  • How to run and debug existing Python programs within VS Code
  • How to work with Git and GitHub repositories from VS Code

Visual Studio Code has become my default editor for Python and other tasks, and I hope you give it a chance to become yours as well.

If you have questions or comments, please reach out in the comments below. There is also a lot more information at the Visual Studio Code website than we could cover here.

The author sends thanks to Dan Taylor from the Visual Studio Code team at Microsoft for his time and invaluable input in this article.

Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Python Development in Visual Studio Code (Setup Guide)

Get a short & sweet Python Trick delivered to your inbox every couple of days. No spam ever. Unsubscribe any time. Curated by the Real Python team.

Python Tricks Dictionary Merge

About Jon Fincher

Jon taught Python and Java in two high schools in Washington State. Previously, he was a Program Manager at Microsoft.

Each tutorial at Real Python is created by a team of developers so that it meets our high quality standards. The team members who worked on this tutorial are:

Aldren Santos

David Amos

Master Real-World Python Skills With Unlimited Access to Real Python

Join us and get access to thousands of tutorials, hands-on video courses, and a community of expert Pythonistas:

Master Real-World Python Skills
With Unlimited Access to Real Python

Join us and get access to thousands of tutorials, hands-on video courses, and a community of expert Pythonistas:

What Do You Think?

What’s your #1 takeaway or favorite thing you learned? How are you going to put your newfound skills to use? Leave a comment below and let us know.

Commenting Tips: The most useful comments are those written with the goal of learning from or helping out other students. Get tips for asking good questions and get answers to common questions in our support portal. Looking for a real-time conversation? Visit the Real Python Community Chat or join the next “Office Hours” Live Q&A Session. Happy Pythoning!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *