Что лучше pycharm или visual studio
Если вы сюда зашли, то, возможно, вы ищете IDE для Python.
В этой статье мы пройдёмся по пяти лучшим по моему мнению IDE.
1. Atom
Этот простой на первый взгляд редактор, на самом деле обладает огромным функционалом. Atom написан разработчиками GitHub`а с использованием Electron — фреймворка для создания кроссплатформенных приложений для десктопа средствами JavaScript, HTML и CSS — и имеет множество расширений.
Плюсы:
Удобный и понятный интерфейс
Поддержка множества языков программирования
Простая и понятная установка
Минусы:
Нет встроенного компилятора и экрана отладки, их нужно добавлять с помощью расширений
2.Microsoft Visual Studio
Microsotf Visual Studio, как её ещё называют "VS" является полнофункциональным IDE, с не менее красивым дизайном, чем Atom. Она имеет две версии для скачивания: Бесплатная (Community) и платная (Professional и Enterprise).
Плюсы:
Встроенный компилятор и экран отладки
Минусы:
Может быть установлен только на платформу Windows
3. PyCharm
PyCharm разработан компанией JetBrains и предназначен только для Python. После запуска вы сразу можете начать писать код. Существует бесплатная (Commynity) версия и платная(Professional) версия. Вторая же обладает более гибким функционалом. IDE доступен для MAC, Windows и Linux.
Плюсы:
Встроенный компилятор и экран отладки
Приятный и красивый дизайн
Возможность писать код сразу после запуска
Минусы:
Возможные сбои встроенного компилятора
4.Spyder
Spyder это тоже хороший вариант IDE для разработчиков, работающих с Python. Это легкая в использовании и интуитивно понятная среда разработки.
Плюсы:
Минусы:
5.Sublime Text
Небольшое по функционалу IDE с большой фанатской базой, которое по сей день хорошо поддерживается. Эта среда работает с несколькими языками программирования. Сама программа частично платная. То есть за неё нужно платить, но можно воспользоваться демо-версией.
Плюсы:
Простой и понятный интерфейс
Подходит для новичков.
Минусы:
В заключение хочу сказать, что выбор среды разработки - чистая вкусовщина. Спасибо за внимание, надеюсь, вы нашли то, что искали.
Львиную долю своего рабочего времени программисты проводят в редакторах кода. В такой ситуации комфортность и удобство рабочей среды трудно переоценить. Конечно, писать код можно и в простейшем текстовом редакторе и сохранять в .html, но с продвинутым редактором это не сравнится. Особенно если редактор ориентирован на конкретный язык. Так как питон был и остается основным языком, используемым в Data Science, и именно ему мы уделяем особое внимание на наших курсах, делимся с вами переводом статьи, автор которой пишет о знакомых ему редакторах и о том, что он считает привлекательным в них.
Примечание автора: каждый упомянутый в этой статье редактор хорош по-своему. Список — это только краткое руководство, основанное на моем личном опыте. Одни редакторы могут нравиться вам больше других. В конце концов, выбор редактора или среды разработки за вами. Нет неправильного или правильного выбора.
1. Python IDLE
IDLE — редактор, поставляемый вместе с Python. Это базовый, упрощенный режим программирования на Python. Тем не менее, IDLE хороший редактор для начала программирования и понимания основ языка. В нем есть оболочка Python — интерактивный интерпретатор. Его возможности обширны: автозавершение кода, подсветка синтаксиса, подбор отступа и базовый встроенный отладчик.
- Не подходит сложным проектам.
- Не хватает продвинутых функций.
2. Sublime Text
- Простой и по большей части бесплатный.
- Тонко настраивается.
- Компактный и эффективный.
3. Visual Studio Code
Visual Studio Code — бесплатный редактор кода от Microsoft для Windows, Linux и MacOS. Его возможности — отладка, подсветка синтаксиса, интеллектуальное завершение кода, предопределённые фрагменты кода, рефакторинг и интеграция с Git. Поддерживаются различные языки программирования. Для начала работы с Python может понадобиться несколько дополнительных пакетов, но установить их довольно просто. Редактор постоянно обновляется. Visual Studio Code — один из лучших редакторов не только для Python, но и для других языков программирования. Я часто пользуюсь VSC и очень рекомендую его.
- Это фантастическая платформа с непрерывными обновлениями.
- Потребляет немного памяти по сравнению с другими громоздкими инструментами разработки.
- Имеет встроенный терминал и прост в использовании.
- Иногда терминал работает не так, как хотелось бы.
4. Jupyter Notebook
Jupyter Notebook — это веб-приложение с открытым исходным кодом, позволяющее создавать документы с выполняемым интерактивно кодом, уравнениями, визуализациями, простым текстом. Конечно, такими документами просто поделиться. Jupyter Notebook используется для очистки и преобразования данных, численного и статистического моделирования, визуализации данных, машинного обучение и многого другого. Этот редактор — хороший вариант для начала работы с наукой о данных и машинным обучением. Файлами можно поделиться с кем угодно, они помогают эффективнее работать с кодом. Я настоятельно рекомендую Jupyter Notebook, поскольку можно работать с каждым блоком кода отдельно. Также есть возможность использовать разметку. Среда Jupyter Notebook широко используется во многих успешных компаниях.
- Лучшая платформа для начала работы с наукой о данных.
- Легко делиться файлами и визуализациями.
- Разметка и другие дополнительные функции.
5. PyСharm
PyCharm — это интегрированная среда разработки специально для Python. Разработана чешской [прим. перев. — автор ориентируется на расположение головного офиса] компанией JetBrains. Редактор разработан специально для Python, так что имеет широкий набор возможностей, таких как автозавершение и инспекции кода, подсветка ошибок, исправления, отладка, система контроля версий и рефакторинг. IDE доступна на Microsoft Windows, Linux и MacOS. Есть бесплатная и платная профессиональная версии. Профессиональная IDE имеет несколько дополнительных функций, но бесплатной версии достаточно для большинства задач. Я настоятельно рекомендую PyCharm, если у вас есть как минимум 8 Гб оперативной памяти.
- Имеет важные встроенные функции.
- Разработана профессионалами специально для Python.
- Поддерживает виртуальные среды Anaconda.
- Основная проблема PyCharm: если у вас недорогой ПК или ноутбук и в нем нет 8 Гб оперативной памяти, то IDE немного притормаживает и работает довольно медленно.
6. Thonny
IDE Thonny предустановлена на системы Linux и системы на ее основе. Мой опыт работы с этим редактором в основном связан с Raspberry Pi. Это отличная, простая среда разработки для начинающих. Thonny хорошо подходит Raspberry Pi. Некоторые возможности: подсветка синтаксических ошибок, отладчик, автозавершение кода, пошаговое вычисление выражений.
- Интерактивная среда.
- Подходит для начинающих.
- Может использоваться для проектов Raspberry Pi.
- Редактор склонен к проблемам.
- Имеет не очень много возможностей.
7. Spyder
Spyder — это мощная научная интегрированная среда программирования, написанная на Python, для Python. Она разработана учеными, инженерами и аналитиками данных для них самих. Spyder обладает уникальным сочетанием возможностей. Продвинутое редактирование, анализ, отладка и профилирование сочетается с возможностями исследования данных, интерактивного выполнения, глубокой инспекции кода и красивой визуализацией. Установить Spyder просто: скачайте его как часть дистрибутива Anaconda. Разработчики рекомендуют последнюю 64-битную версию Python 3, если у вас нет особых требований.
- Бесплатный редактор, поставляется с Anaconda.
- Хорошее рабочее окружение для просмотра интерпретаций и кодирования в два окна.
- Широкий выбор опций исключительно для Python.
8. Atom
Эта IDE похожа на текстовый редактор Sublime. Она очень настраиваемая и поддерживает многие необходимые пакеты. У меня меньше опыта работы с этим редактором, поэтому я рекомендую скорее Sublime Text, чем Atom. Но перечислю некоторые часто используемые пакеты Atom для разработки на Python: autocomplete-python , linter-flake8 , python-debugger .
- Работать с Atom легко.
- Поддерживает Python после дополнительных установок.
- Требуется дополнительный плагин для Python.
- Больше подходит для работы с git.
9. VIM
Vim — это текстовый редактор, предустановленный в системах MacOS и UNIX. Большинство экспертов любят vim за развитые вычислительные возможности и легкую, компактную среду разработки. Он не рекомендуется начинающим, так как изучать его трудно. Можно добавить плагины подсветки синтаксиса, автозавершения кода, отладки, рефакторинга и другие к Vim и использовать его как Python IDE. [Прим. перев. На скриншоте GVim — версия Vim с графическим интерфейсом].
- Легкий.
- Эффективный.
- Производительный.
- Нужно посвятить время изучению редактора, у него крутая кривая обучения.
10. Notepad++
Notepad++ — это редактор текста и исходного кода, работающий на Microsoft Windows. Поддерживается редактирование с вкладками, что позволяет работать с несколькими открытыми файлами в одном окне. Название проекта происходит от оператора инкремента языка С. Notepad++ распространяется как свободное программное обеспечение. Редактор поддерживает множество языков программирования и может быть полезным. На мой взгляд, есть и лучшие варианты. Кроме того, нужно установить дополнительные пакеты, чтобы сделать редактор функциональным для программирования на Python.
- Заменяет блокнот.
- Может использоваться для нескольких языков программирования, включая Python.
- Требуется дополнительная настройка и установки плагинов, чтобы работать с Python.
- Не в топе рекомендаций: есть много вариантов получше.
11. Онлайн редакторы
На Programiz, tutorials point, w3schools и некоторых других сайтах есть редакторы с удивительными возможностями.
- Никаких дополнительных установок и настроек.
- Простой код запускается без особых хлопот.
Расскажите, в каком редакторе для Python вы пишете код и почему?
Получить востребованную профессию с нуля или Level Up по навыкам и зарплате можно, пройдя онлайн-курсы SkillFactory:
PyCharm Community edition and Visual Studio Code (VSCode) are both very capable integrated development environments for Python coding. While VSCode has some great support for Python coding with the 'Python' plugin by Microsoft, PyCharm is truly designed for Python development and it shows.
In this post I take PyCharm up against Visual Studio Code using the following 7 IDE criteria:
- Git Integration
- Python Code Management
- Code Completion
- Debugging
- Performance
- Refactoring
- Cross Platform Compatibility
Not sure what PyCharm is? Check out this post.
The Approach
My approach to conduct this evaluation was to pick the IDE feature that I use most often and compare the experience between PyCharm and VSCode. My Python project is very simple so it would be worth building an in depth project with each of these IDEs.
For this comparison I am using PyCharm Community installed on Ubuntu in a virtual machine and VSCode 1.47.2 on the same virtual machine with the Microsoft Python plugin. Both PyCharm Community and VSCode are free, so financials don't enter into the comparison.
Git Integration
My big measurement criteria for Git integration was to see how much could be done within the tool itself without the need to resort to command line. I expect that common actions like creating branches, committing code and managing code on remotes can be done within the IDE.
VSCode
VSCode detects if a git repo has been setup for a project and allows you to initialize one. Creating my local repo was simple, however connecting to GitHub was much more difficult. It doesn’t look like there is a way to create a GitHub repo from VSCode so I had to create it through the GitHub Web UI. Once I was OAuth connected I could only view repos. I had to log into GitHub to create the repo, then it appeared in my list. Also, the local git remote that VSCode creates is named after the repo and not called ‘origin’ which I find a bit off-putting.
You can create branches using “Checkout to…”. Publish a branch to the remote (GitHub in my case). A pull request has to be started from the GitHub web ui. Pushing and pulling code changes is all possible from within VSCode.
These is the Git integration quick actions that VSCode displays for a new project.
For me, VSCode gets a 3/5 on Git integration. It has the basics, and while I don't need to go to command line for simple tasks, I do have to go to the GitHub Web UI, which is even less convenient.
PyCharm
PyCharm's Git integration is excellent. I was easily able to create a local Git repository on my project folder and in GitHub - without using the GitHub UI. PyCharm also supports creating and viewing pull requests from within the IDE. There is no need to use the command line or the GitHub Web UI for day to day tasks.
PyCharm also supports GitHub 2 factor authentication.
While I was able to create a GitHub Pull Request in PyCharm, I wasn't able to complete and merge it? Still, I am very impressed with PyCharm's Git Integration.
PyCharm gets a 5/5 on Git integration.
Code Management
Code management is an IDEs basic reason for existence. Making it easy for a developer to navigate a code base. Both VSCode and PyCharm have built in file hierarchy displays on the left of the code window (with the default setup) and allow you to create, rename and remove files easily. You can select function names and quickly navigate to their definitions with both of these tools. The real differentiation is in the IDE search functionality and smart code features.
For code management there were 2 areas I focused on:
For each project I added a file with a function definition, then called that function from my main file. I created a greet.py module with a function called greet:
VSCode
VSCode was unaware of the new function and I had to manually add the import statement.
I also really like Find in Files. Especially with a code base that I have inherited, being able to find files anywhere in a project containing a keyword within a project is essential. VSCode does this really well. The search results are displayed on the left, and I can click through and view them in the editor pane.
A strong search, but weak code dependency management and VSCode gets a 4/5 on code management.
PyCharm
When I added the greet module and function in PyCharm it was able to detect the missing import statement and recommended adding it. This is a great help to a developer.
The find in files search that I use so often is a bit awkward in PyCharm. It is even difficult to find it.
PyCharm displays this modal with search results which site over top of the code window. It is also difficult to see the files that it has found. I do like that I can select a path and search down into it. Because of the awkward search I give PyCharm a 4/5 on code management.
Code Completion and Highlighting
Highlighting is very personal, and fast and non-intrusive code completion is very helpful. I like the dark theme, VSCode and PyCharm both support multiple light and dark themes and since this is very subjective I am leaving out of the rating.
VSCode
VSCode supports code completion and it is quite capable.
Although VSCode didn't add the import statement for my new module automatically, once the import statement was added, VSCode is able to offer autocomplete for this function.
I can type 'g' and select the greet function from a list of valid selections starting with 'g', which then shows me the function comment and signature. The code completion experience is responsive and intuitive. I would say this is an average code completion experience and so I rate it at 3/5.
PyCharm
Similar to the other capabilities I've looked at so far, code completion is just better in PyCharm. PyCharm shows the function signature as part of the autocomplete selection list, but with some extra cool features. See those 3 dots at the end?
The three dots display the following menu:
- Sort by Name
- Quick Documentation
- Quick Definition
Quick Documentation shows the function signature and return types as well as the function comment. Quick Definition shows the function code. Very handy. This is a step above VS Code and the quick actions exceeded my expectations. PyCharm's code completion gets a 5/5.
Debugging
VSCode
VSCode allows you to execute your code in debug mode and step through it. The left pane displays local and global variables, watched values, the call stack and a list of all breakpoints. Hover over a variable to see it's current value in context. All of the standard execution controls are also available, step over, step into, step out. VSCode also allows you to create conditional breakpoints which are handy it you are looking for a specific data condition that causes problems.
VSCode provides a solid debugger for Python. It gets a 4/5.
PyCharm
PyCharm has the same features as VSCode, the debug properties are displayed in the bottom pane and the call stack is called 'frames'. You can view variables, and watch values, step into, over and out of functions.
On top of conditional breakpoints, PyCharm has some other interesting breakpoint logic, like:
- Breakpoint Hit messages that allow you to log information at breakpoints without adding print messages to your code
- Remove once hit, allowing you to remove a breakpoint once it has been hit. This works well when combined with conditional breakpoint logic.
Once again PyCharm exceeds my expectations and gets a well deserved 5/5.
Performance
For this test, I am running PyCharm and VSCode inside of an Ubuntu VM hosted in VirtualBox. I have 2 CPU core allocated and 4 GB of memory for the virtual machine.
VSCode
Start Up time is good for VSCode, once the VM was primed VSCode would load in about 4 seconds. My test project is only a couple of files, so I don't have a good sense of how it handles large projects. VSCode runs a number of processes and consumes a lot of memory, almost 1 GB. I attribute this to the electron framwork.
PyCharm
PyCharm is much slower to load than VSCode, clocking in over 10 seconds. Memory usage is lower however, in the 500MB range.
Once loaded, both IDEs were quite responsive with very little stuttering when looking up autocomplete suggestions.
Performance Summary
Measure | VS Code | PyCharm |
---|---|---|
Start Up Time | 4 sec (avg) | 15 sec |
Memory Use | 895MB | 550MB (Java) |
My Rating | 3/5 | 3/5 |
In each of their own ways these two IDEs are quite fat. So I've given them both a 3/5 on performance.
Refactoring
VSCode
In order to use refactorings, I had to setup 'rope' which VSCode nicely pip installed for me. The following refactorings are supported in VSCode:
- Rename
- Extract Method
- Extract Variable
This is a pretty limited list of refactoring capabilities. A 1/5 goes to VSCode for refactoring.
PyCharm
So I expected PyCharm to do well in the refactoring category since JetBrains built their company on the ReSharper refactoring plug-in for Visual Studio and PyCharm doesn't disappoint. Refactorings include:
- Rename
- Change Signature
- Move File
- Copy File
- Introduce Variable
- Introduce Constant
- Introduce Field
- Introduce Parameter
- Extract Method
- Extract Superclass
- Pull Members Up
- Push Members Down
Impressive refactoring to PyCharm for a 5/5 in this category.
Cross Platform Compatibility
VSCode
VSCode is incredibly portable thanks to the fact that it is open source. I have VSCode running on my Raspberry Pi 4 running Manjaro, and my Raspberry Pi and Jetson Nano running Ubuntu.
VSCode runs on AMD and ARM architectures in 32 or 64 bits. It is highly portable, a clear 5/5 here.
PyCharm
PyCharm runs on java which gives it some cross platform capability too. Unfortunately the JetBrains toolbox does not run on Java and is compiled for AMD architecture only.
However, you can download the PyCharm install files and extract and run PyCharm on a Raspberry Pi or Jetson Nano and it seems to work just fine. You'll need to install the Java JDE first and you should be good to go.
PyCharm gets a 4/5 on cross platform because of toolbox - collateral damage.
Tabulated Results
Here are all the ratings for the eight categories.
Criteria | VS Code | PyCharm |
---|---|---|
Git Integration | 3/5 | 5/5 |
Code Management | 4/5 | 4/5 |
Code Completion | 3/5 | 5/5 |
Debugging | 4/5 | 5/5 |
Performance | 3/5 | 5/5 |
Refactoring | 1/5 | 5/5 |
Cross Platform | 5/5 | 4/5 |
Total | 23/35 | 33/35 |
Summary
For Python development, PyCharm is the clear winner. But don't uninstall VSCode, it's a great swiss army knife with great support for many languages.
Python is one of the most popular programming languages in the world in 2020 and many developers call it home. As such, it has a broad selection of tools, code editing apps and IDEs to match the needs of different Python developers and project types.
The list of code editing tools is long, but the top two contestants for the crown, JetBrains’ PyCharm and Microsoft’s Visual Studio code, are by far the most popular homes for Python developers. Where should you be living in 2020 – VS Code or PyCharm?
For an experienced Python developer (or any language for that matter), swapping IDEs is akin to moving to a new home in a different country. Even if you speak the local language, there are differences in things like currency, as well as local customs, and laws you will need to learn. Not to mention your new house, where you may even find yourself sleepily looking for the toilet (for God knows what time) in the middle of the night. At least for the first few weeks.
Is it worth it? Perhaps you will discover that migrating to a different state makes your life objectively better. Once you remember where the bathroom is, of course. Alternatively, you may find yourself hurrying back to your place of birth, kissing the proverbial ground as soon as you land.
Few dare to take the leap, pack their code and move to a new IDE or code editing software. For many, there’s no place like home even if the alternative promises to save them time and headaches. But loyalties aside, it’s always a good idea to take a peek over the borders.
How to choose a Python IDE / Code Editor
It’s worth noting that this article is not a “conversion piece” for neither PyCharm nor VSCode. We’re not recommending you choose one over the other (especially since you can make use of TabNine), but rather than you choose correctly for your needs.
Whether you currently use Visual Studio Code or Jetbrains’ PyCharm for Python development, this article aims to give you a better understanding of the difference, and uncover how each may contribute to your productivity.
Before we dive into the advantages and disadvantages of PyCharm and VSCode for Python development, it’s worth taking a moment to organize your criteria for selection. Among the topics to consider are license costs (if you have no budget) and system requirements (if your lack of budget is evident in your hardware setup).
IDE vs Code Editor
We’ve used the terms IDE and code editor in this article rather interchangeably. However, they’re not the same.
Jetbrains’ PyCharm is a full-featured Integrated Development Environment (IDE) for Python development. As such, it includes everything you need in order to code, build, test, and debug Python applications.
In addition to a code editor, an IDE such as PyCharm typically includes a compiler and/or interpreter, a debugger and code profiler, version control integration, and plugin support. All available on-install out of the box.
This does mean, however, that PyCharm is a heavy beast with high system demands along with advanced capabilities aimed specifically at professional Python developers.
VS code is a lightweight code editor with basic features like syntax highlighting and code formatting included out of the box. VSCode can be customized heavily with extensions to do pretty much anything and everything with most commonly used programming languages and frameworks.
This makes VSCode perfect for code polyglots who develop in multiple languages. But it also means you will spend more time customizing it to your Python coding needs with extensions that will (hopefully) not clash with one another.
Intellij PyCharm for Python Development
PyCharm is one of the highest rated Python IDEs today, and it has earned its spot at the top with its suite of productivity tools and out-of-the-box features. But not all PyCharms are the same, and different licenses offer different degrees of functionality.
There are currently three types of licenses for PyCharm. The first is the Apache-licensed Pycharm community edition, aimed mostly at data scientists. It is open sourced and free, and offers features like syntax highlighting and some autocompletion. The second is the Education edition, offered for free to students and teachers.
It too offers a limited feature-set and is intended for learning and not so much development of software products. The third type of license, and the version we refer to in this article is the Professional edition of PyCharm, that carries a hefty price tag starting between $ 199 and $ 159 for an annual subscription for businesses.
The full and paid version of PyCharm offers advanced features and capabilities geared toward streamlining all aspects of professional Python software development. This includes full built-in database management (like Oracle and MySQL) and support for multiple popular frameworks (like Django, Flask and others) that are not supported in the free versions.
- All-in-one IDE out-of-the-box – write, edit, debug, compile, execute and deploy from the same window
- Created specifically for Python developers
- Django support (including code completion and resolution in views.py and urls.py files, code inspection tools for Django ORM, and the ability to debug Django templates)
- Professional support by JetBrains
- Price of professional edition (and lack of features in free editions)
- Requires some configuration for first-time users and novices
- Supports a limited number of languages and technologies in addition to Python
- System requirements and performance – consumes up to 1GB of memory a minute while idle
Microsoft Visual Studio Code for Python Development
Visual Studio Code is a lightweight solution that can be expanded, extended and modified through plugins and extensions. A kind of Lego board upon which you can construct the development environment you want and need.
Being a modular solution, VSCode demands that you download and install extensions to compile, debug, lint and deploy code. It may sound like a bit of a hassle, but you can do that for pretty much any popular language or framework out-there. Need to code in Python? It just so happens that the Python support extension is the most downloaded plugin in the Visual Studio Code Marketplace. Need to write some C++ and don’t want to install yet another code editor? Then you should download the second most popular extension for VSCode – C/C++ support.
The VSCode community and Microsoft themselves are not blind to the rising popularity of VSCode with Python developers. In the recently published update to the Python extension for VSCode, Microsoft addressed 42 issues, and added the ability to browse for or enter an interpreter path on selection.
- Growing community support
- Free and open source
- Lightweight and low on system resource demands
- Support for most popular languages and frameworks through extensions
- Powerful and customizable code management
- Thousands of extensions to choose from
- Less suitable for large and complex Python projects and applications
- Demands a great deal of customization and tweaking
- Lacking Django support
- Thousands of extensions to choose from
The choice between PyCharm and Visual Studio is similar to a choice between a fancy cake knife and a Swiss army knife to cut a cake. The first may produce artfully cut and even slices, while the second may not be perfect for cutting a cake, but can do a lot more. And fits nicely in your pocket.
Michael Zippo 27.11.2021
Принятие решения об обучении программированию – это сложный и увлекательный процесс! Изучив свои ресурсы, вы, скорее всего, решили, какой язык программирования вы хотите использовать. Если вы выбрали Python, то вы обратились по адресу!
Python — очень универсальный язык, легкий в освоении, интересный для освоения и очень способный. Это открытый исходный код, что означает, что любой может редактировать и использовать код. Он также имеет огромный набор модулей и плагинов для пользователей, и он быстрый. Все это в совокупности делает Python идеальным языком, независимо от того, хотите ли вы работать над крупными коммерческими проектами или не перегружать себя в процессе обучения.
Однако, чтобы изучить Python, вы должны иметь необходимые инструменты. Использование хорошо разработанного текстового редактора или интегрированной среды разработки (IDE) имеет решающее значение для вашего опыта программирования. Как вы, возможно, уже заметили, на рынке есть несколько вариантов! Некоторые из наиболее популярных вариантов — Visual Studio (VS) Code и PyCharm.
- Python.Engineering предлагает вам лучшие технологические учебные курсы
- Получите эксклюзивные стипендии и подготовительные курсы
И PyCharm, и VSCode — отличные ресурсы для программирования на Python, поэтому выбор между ними может оказаться сложным процессом! Мы надеемся, что к тому времени, как вы закончите читать эту статью, у вас будут все технические знания, необходимые для самостоятельного принятия правильного решения. Давайте начнем с основ и посмотрим подробное сравнение кода Visual Studio и PyCharm!
Что такое IDE? (А что нет?)
Чтобы понять принципиальную разницу между PyCharm и VSCode, нам нужно понять, что представляет собой каждая программа по своей природе. PyCharm — это то, что называемая IDE, иначе известная как интегрированная среда разработки. IDE представляют собой набор инструментов, которые работают вместе. Как правило, эти инструменты включают в себя редактор, компилятор и инструменты отладки, которые позволяют кодировать, выполнять и отлаживать код в единой среде . IDE чрезвычайно универсальны и функциональны, но у них есть несколько недостатков.
Когда что касается программирования, ваш компьютер — это ваш рабочий стол, а ваш экран — это ваше рабочее пространство. Большинство людей склонны мыслить более ясно, когда их пространство работает является чистым. Это то, где IDE могут быть очень переполнены. IDE полны функциональных элементов, но, как упоминалось в atomic object, большое количество модулей действительно может привести к эффективному редактированию текста. Трудно работать над крупномасштабными проектами. Они также обычно поддерживают один или два языки. На случай, если вам понадобится ключ рабочее пространство или требует использования более одного языка, красиво составленный текстовый редактор, такой как VSCode, — это именно тот инструмент, который вам нужен для эффективного выполнения вашей задачи. .
В этот момент у вас может возникнуть вопрос: «В чем разница между IDE и текстовым редактором?» В то время как IDE делает все, от редактирования текста до времени компиляции, текстовый редактор редактирует только .. . ну . текст. текстовые редакторы, как правило, довольно простые программы, оптимизированные для быстрого ввода текста в чистом формате. Различные текстовые редакторы будут иметь подключаемые модули, расширения и стили программирования. С помощью этих текстовых редакторов вы можете адаптировать того, как вы думаете и что вы надеетесь делать со своим кодом.
Решение о том, предпочитаете ли вы иметь IDE или текстовый редактор, повлияет на ваш выбор между PyCharm и VSCode, но не так сильно, как вы могли бы подумать Запутались? Не волнуйтесь! Читайте дальше, и мы объясним
Найдите подходящий Bootcamp
Средний диплом буткемпа тратит менее шести месяцев на смену карьеры, чтобы начать буткемп и найти свою первую работу.
Начните менять свою карьеру сегодня
Для чего-используется-PyCharm?
Python и PyCharm: в паре с жизнью
PyCharm также имеет отличный отладчик, который автоматически компилирует исправления и рекомендует исправления, а поскольку сама программа является компилятором, невозможно переключаться между окнами редактирования и проверки. ошибка. Это делает весь процесс намного более элегантным, сокращая время, затрачиваемое на то, что часто считается самым скучным аспектом кодирования.
Видя, что PyCharm так хорошо подходит для работы с Python, можно ожидать, что он не будет отрицательным. Однако есть несколько интересных вопросов. Как объяснено Arbisoft, PyCharm тяжеловат. В простое потребляет до 1 ГБ в минуту, не говоря уже о значительном времени ожидания при запуске программное обеспечение. В то время как потеря скорости и мощности не является слишком большой ценой, полностью оборудованная версия PyCharm является платной. При цене 199 долларов в год неограниченная версия Pro PyCharm представляет собой тяжелое программное обеспечение по высокой цене. На рынке доступна бесплатная версия, но она, по сути, опускает программу до базового уровня IDE Python. Вы все еще можете отлаживать и компилировать, и согласно i-programmer, также остаются некоторые функции автозаполнения. Тем не менее, вы теряете доступ к некоторым базам данных и обнаружению повторяющихся кодов, предлагаемых в версии Pro Unlimited.
Несмотря на высокую цену, PyCharm — замечательная программа, разработанная для максимально элегантной обработки Python. . Цель программного обеспечения — предоставить пользователям платформу для быстрого и эффективного создания и изменения больших объемов кода Python и оптимизации времени программирования. С функциями, реализованными в PyCharm, можно сказать, что они хорошо поработали! Но как увлекательные функции PyCharm сочетаются с мощным инструментом кода Visual Studio?
VSCode который делает что-то примерно для
Как упоминалось выше, VSCode технически является текстовым редактором, ни его функции редактирования текста, ни возможности типа IDE не являются слегка нечеткими.VSCode часто путают с IDE, потому что, как заметил полезный пользователь на Stack Overflow , VSCode имеет отладчик и может компилировать некоторые языки . Однако возможности компиляции Visual Studio Code являются подключаемыми модулями. Поэтому, поскольку компилятор технически не является частью системы, а VSCode поддерживает большое разнообразие языков ‚Äã‚Äã вместо того, чтобы специализироваться на паре, технически это не IDE.
При этом VSCode на удивление сравним с PyCharm. Обе программы имеют автодополнение кода, интеграцию с Git и очень полезное программное обеспечение для отладки. VSCode, хотя в нем отсутствуют некоторые более специализированные функции PyCharm (например, поддержка Django ), VSCode готов к использованию. использовать, но это гораздо более легкая программа, чем PyCharm. И хотя в PyCharm всего около 1700 подключаемых модулей , общее количество VSCodes на 16 000 что означает есть почти бесконечные возможности для игры.
Наконец, по сравнению с ценой.Visual Studio Code является полностью бесплатным программным обеспечением, что означает, что у вас есть доступ к тысячам ресурсов и полностью персонализированный опыт.
Подробное сравнение VSCode и PyCharm: StackOverflow Questions
Дата и время JSON между Python и JavaScript
Question by kevin
Вы можете добавить параметр "по умолчанию" в json.dumps для обработки этого:
Что такое Формат ISO 8601.
Более полная функция обработчика по умолчанию:
Обновление: добавлен вывод типа и значения.
Обновление: добавлена дата обработки
Javascript-эквивалент функции zip в Python
Есть ли javascript-эквивалент функции zip Python? То есть, учитывая несколько массивов одинаковой длины, создайте массив пар.
Например, если у меня есть три массива, которые выглядят так:
Выходной массив должен быть:
Обновление 2016 года:
Здесь – более привлекательная версия Ecmascript 6:
Иллюстрация эквивалентна Python < zip(*args) >:
(и FizzyTea указывает, что ES6 имеет синтаксис вариативного аргумента, поэтому следующее определение функции будет действовать как python, но см. ниже заявление об отказе от ответственности. это не будет его собственной инверсией, поэтому zip(zip(x)) не будет равно x ; хотя, как указывает Мэтт Крамер, zip(. zip(. x))==x (как в обычном python zip(*zip(*x))==x ))
Альтернативный эквивалент определения для Python < zip >:
(Обратите внимание, что синтаксис . может иметь проблемы с производительностью в настоящее время и, возможно, в будущем, поэтому, если вы используете второй ответ с вариативными аргументами, вы можете захотеть проверить его на работоспособность. Это говорит о том, что прошло довольно много времени с тех пор, как он был в стандарте.)
Обязательно обратите внимание на дополнение, если вы хотите использовать это в строках (возможно, сейчас есть лучший способ сделать это с итерируемыми объектами es6).
Вот это oneliner :
Вышеприведенное предполагает, что массивы имеют одинаковый размер, как и должно быть. Также предполагается, что вы передаете один аргумент списка списков, в отличие от версии Python, где список аргументов является вариативным. Если вам нужны все эти «функции», см. ниже. Это займет примерно 2 дополнительные строки кода.
Следующее будет имитировать поведение zip Python в крайних случаях, когда массивы не имеют одинакового размера, молча притворяясь, что более длинные части массивов не " не существует:
Это будет имитировать поведение Python в itertools.zip_longest , вставляя undefined где массивы не определены:
Если вы используете эти две последние версии (с переменным числом аргументов, то есть версии с несколькими аргументами), то zip больше не является инверсией самого себя. Чтобы имитировать идиому zip(*[. ]) из Python, вам нужно будет выполнить zip.apply(this, [. ]) , когда вы хотите чтобы инвертировать функцию zip или если вы хотите аналогичным образом иметь переменное количество списков в качестве входных данных.
дополнение:
Чтобы сделать это обрабатывать любые итерации (например, в Python вы можете использовать zip для строк, диапазонов, объектов карты и т. д.), вы можете определить следующее:
Однако, если вы напишете zip в следующем способ, даже это не понадобится:
(Или вы можете использовать функцию range(. ) в стиле Python, если вы уже написали ее. Со временем вы сможете использовать генераторы или генераторы массивов ECMAScript.)
Что мешает Ruby и Python получить скорость Javascript V8?
Есть ли какие-либо функции Ruby/Python, которые блокируют внедрение оптимизаций (например, встроенное кэширование) в движке V8?
Python разработан совместно с ребятами из Google, поэтому он не должен быть заблокирован патентами на программы.
Или это скорее вопрос ресурсов, вложенных Google в проект V8.
Что мешает Ruby и Python получить скорость Javascript V8?
Ну, ладно: деньги. (И время, люди, ресурсы, но если у вас есть деньги, вы можете их купить.)
В V8 работает команда блестящих, высокоспециализированных, высококвалифицированных (и, следовательно, высокооплачиваемых) инженеров, работающих на нем, которые имеют многолетний опыт (я говорю индивидуально & nbsp; коллективно это больше похоже на столетия) в создании высокопроизводительных исполнительных механизмов для динамических ОО-языков. По сути, это те же люди, которые также создали JVM Sun HotSpot (среди многих других).
Ларс Бак, ведущий разработчик, буквально работал над виртуальными машинами в течение 25 лет (и все эти виртуальные машины до V8), что составляет практически всю его (профессиональную) жизнь. Некоторым людям, пишущим виртуальные машины на Ruby, нет и 25 лет.
Есть ли какие-либо функции Ruby/Python, которые блокируют реализацию оптимизаций (например, встроенного кэширования) в движке V8?
>
Учитывая, что по крайней мере IronRuby, JRuby, MagLev, MacRuby и Rubinius имеют либо мономорфное (IronRuby), либо полиморфное встроенное кэширование, очевидно, что нет.
Современные реализации Ruby уже это делают. большое количество оптимизаций. Например, для некоторых операций класс Rubinius Hash работает быстрее, чем YARV. Теперь это не звучит очень захватывающе, пока вы не поймете, что класс Rubinius Класс Hash реализован на 100% чистом Ruby, а YARV реализован на 100% оптимизированном вручную C.
Поэтому, по крайней мере, в некоторых случаях Rubinius может генерировать код лучше, чем GCC!
Или это скорее вопрос ресурсов, вложенных Google в проект V8.
Да. Не только Гугл. Наследию исходного кода V8 исполнилось 25 лет. Люди, работающие над V8, также создали виртуальную машину Self (на сегодняшний день это один из самых быстрых динамических движков исполнения объектно-ориентированного языка из когда-либо созданных), виртуальную машину Animorphic Smalltalk (до настоящего один из самых быстрых когда-либо созданных механизмов выполнения Smalltalk), HotSpot JVM (самая быстрая JVM из когда-либо созданных, вероятно, самый быстрый период VM) и OOVM (одна из самых эффективных когда-либо созданных виртуальных машин Smalltalk).
В на самом деле, Ларс Бак, ведущий разработчик V8, работал над каждым из них, а также некоторыми другими.
Переменные шаблона Django и Javascript
Когда я визуализирую страницу с помощью средства визуализации шаблонов Django, я могу передать переменную словаря, содержащую различные значения, для управления ими на странице с помощью > .
Есть ли способ получить доступ к той же переменной в Javascript (возможно, используя DOM, я не знаю, как Django делает переменные доступными)? Я хочу иметь возможность искать детали, используя поиск AJAX на основе значений, содержащихся в переданные переменные.
> подставляется непосредственно в HTML. Сделайте источник просмотра; это не "переменная" или что-то в этом роде. Это просто визуализированный текст.
Сказав это, вы можете поместить такую подстановку в свой JavaScript.
Это дает вам "динамический" javascript.
Веб-скрейпинг страницы JavaScript с помощью Python
Я пытаюсь разработать простой веб-скребок. Я хочу извлекать текст без кода HTML. На самом деле я достиг этой цели, но я видел, что на некоторых страницах, где загружен JavaScript, я не получил хорошего результаты.
Например, если какой-то код JavaScript добавляет текст, я его не вижу, потому что когда я вызываю
Я получаю исходный текст без добавленного (потому что JavaScript выполняется в клиенте).
Поэтому я ищу идеи для решения этой проблемы.
Мы не получаем правильных результатов, поскольку любое содержимое, сгенерированное javascript, необходимо отображать в модели DOM. Когда мы извлекаем HTML-страницу, мы извлекаем исходную, не модифицированную javascript, модель DOM.
Поэтому нам нужно отобразить содержимое javascript перед сканированием страницы.
Поскольку селен уже упоминалось много раз в этой ветке (и иногда также упоминалось о том, насколько медленно это происходит), я перечислю два других возможных решения.
Решение 1: Это очень хороший учебник по как использовать Scrapy для сканирования контента, сгенерированного javascript, и мы собираемся следовать именно ему.
Что нам понадобится:
Docker установлен на нашей машине. Это преимущество перед другими решениями до этого момента, поскольку оно использует независимую от ОС платформу.
Установите Splash, следуя инструкциям, приведенным для соответствующей ОС.
Цитата из документации по заставке:
По сути, мы собираемся использовать Splash для рендеринга контента, сгенерированного Javascript.
Запустите сервер-заставку: sudo docker run - p 8050:8050 scrapinghub/splash .
Установите scrapy-splash plugin: pip install scrapy-splash
Предполагается, что у нас уже есть проект Scrapy создан (если нет, давайте создадим), мы следуем инструкциям и обновим settings.py :
Затем перейдите к вашему проекту scrapy — settings.py и установите эти промежуточные программы:
URL SPL ash (если вы используете Win или OSX, это должен быть URL-адрес докер-машины: Как получить IP-адрес контейнера Docker от хоста?):
И, наконец, вам также необходимо установить эти значения:
Наконец, мы можем использовать SplashRequest :
В обычном пауке у вас есть объекты Request, которые вы можете использовать для открытия URL-адресов. Если страница, которую вы хотите открыть, содержит сгенерированные JS данные, вы должны использовать SplashRequest (или SplashFormRequest) для отображения страницы. Вот простой пример:
SplashRequest отображает URL-адрес в формате html и возвращает ответ, который можно использовать в методе обратного вызова (анализа).
Решение 2: Давайте назовем это экспериментальным на данный момент (май 2018 г.).
Это решение для Python" только версия 3.6 (на данный момент).
Знаете ли вы requests (ну, а кто нет)?
Теперь у него есть младший брат для веб-сканирования: requests-HTML:
Эта библиотека предназначена для разбора HTML (например, очистки web) максимально простым и интуитивно понятным.
Запросы на установку-html: pipenv install request-html
Сделайте запрос к URL-адресу страницы:
Визуализировать ответ, чтобы получить биты, сгенерированные Javascript:
Наконец, модуль предлагает возможности очистки.
В качестве альтернативы мы можем попробовать хорошо задокументированный способ использования BeautifulSoup. с только что созданным объектом r.html .
Читайте также: