PyCharm provides smart code completion, code inspections, on-the-fly error highlighting and quick-fixes, along with automated code refactorings and rich navigation capabilities.
Read your code easier with customizable colors for Python code and Django templates. Choose from several predefined color themes.
Automatic indents are inserted on new line. Indent verification and code re-formatting are compliant with project code-style settings.
Select a predefined coding style to apply to your code style configuration for various supported languages.
Code completion for keywords, classes, variables, etc. as you type or via Ctrl+Space. Editor suggestions are context-aware and offer the most appropriate options.
Select a block of code and expand it to an expression, to a line, to a logical block of code, and so on with shortcuts. Single keystroke to comment/uncomment the current line or selection.
Code formatter with code style configuration and other features help you write neat code that's easy to support. PyCharm contains built-in PEP-8 for Python and other standards compliant code formatting for supported languages.
Save time using advanced customizable and parametrized live code templates and snippets.
Code folding, auto-insertion of braces, brackets & quotes, matching brace/bracket highlighting, etc.
Errors are shown as you type. The integrated spell-checker verifies your identifiers and comments for misspellings.
With multiple carets, you can edit several locations in your file at the same time.
Numerous code inspections verify Python code as you type and also allow inspecting the whole project for possible errors or code smells.
Quick-fixes for most inspections make it easy to fix or improve the code instantly. Alt+Enter shows appropriate options for each inspection.
Smart duplicated code detector analyzes your code and searches for copy/pasted code. You'll be presented with a list of candidates for refactoring—and with the help of refactorings it's easy to keep your code dry.
Natively edit non-Python code embedded into string literals, with code completion, error-highlighting, and other coding assistance features.
Code auto-generation from usage with quick-fixes; docstrings and the code matching verification, plus autoupdate on refactoring. Automatic generation of a docstring stub (reStructuredText, Epytext, Google, and NumPy).
Intention actions help you apply automated changes to code that is correct, to improve it or to make your coding routine easier.
PyCharm can help you find anything, be it an item in the source code, user action, or UI element. Double-press Shift and start typing what you are looking for. Also, configure the search scopes based on your specific needs.
Go to class / file / symbol are crucial operations for fast project navigation. Use wildcards and abbreviations to locate items faster.
When Go to declaration invoked from a reference, opens the corresponding file and navigates to the symbol declaration.
Find Usages helps you locate usages of any symbol (e.g. class, method, field, etc.) in your code, in the current file or in the whole project.
In this mode you can scrutinize your code by simply hovering the mouse over any section in the scroll bar. When hovering over a warning or error strip, the code fragment will be annotated with an appropriate message.
Set bookmarks in your code to navigate through it easily or leave some reminders in code. Just type TODO in the comments, and PyCharm will keep track of it and list all the TODOs in a separate view.
Make global project changes easily and safely. Local changes are made instantly in-place. Refactorings work in plain Python and other types of projects such as Django, Flask, Pyramid, etc.
The Rename and Move refactorings work for files, functions, constants, classes, properties, methods, parameters, and local and global variables.
Use Extract Variable/Field/ Constant/Parameter and Inline Local for improving the code structure within a method.
Use Extract Method to break up longer methods, Extract Superclass, Push Up, Pull Down to move the methods and classes.
The following refactorings are also available: Change signature, Convert to Python package/Convert to Python module, Make top level function and more.
See the object definition or documentation in-place without losing your context.
External documentation view is available in the browser for Python standard library, Django, Google App Engine, Scientific packages, etc. (use Shift+F1).
Automatically generate a docstring stub (Epydoc, reStructuredText, Google, NumPy) for a method.
PyCharm provides syntax highlighting and code completion for tags and tag parameters inside Docstrings, as well as code matching verification, and autoupdate on refactoring.