Intelligent Coding Assistance
PyCharm provides smart code completion, code inspections, on-the-fly error highlighting and quick-fixes, along with automated code refactorings and rich navigation capabilities.
Intelligent code editor
Read your code easier with customizable colors for Python code and Django templates. Choose from several predefined color themes.
Auto-Indentation and code formatting
Automatic indents are inserted on new line. Indent verification and code re-formatting are compliant with project code-style settings.
Configurable code styles
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.
Code selection and comments
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.
On-the-fly error highlighting
Errors are shown as you type. The integrated spell-checker verifies your identifiers and comments for misspellings.
Multiple carets and selections
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.
Duplicated code detector
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.
Configurable language injectionsNatively edit non-Python code embedded into string literals, with code completion, error-highlighting, and other coding assistance features.
Code auto generation
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.
Smart code navigation
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
Go to class / file / symbol are crucial operations for fast project navigation. Use wildcards and abbreviations to locate items faster.
Go to declarationWhen Go to declaration invoked from a reference, opens the corresponding file and navigates to the symbol declaration.
Find UsagesFind 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.
Bookmarks and TODOs
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.
Fast and Safe Refactorings
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.
Rename and Move
The Rename and Move refactorings work for files, functions, constants, classes, properties, methods, parameters, and local and global variables.
The following refactorings are also available: Change signature, Convert to Python package/Convert to Python module, Make top level function and more.
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.
Quick definition / documentation viewSee the object definition or documentation in-place without losing your context.
Highlighting and completion
PyCharm provides syntax highlighting and code completion for tags and tag parameters inside Docstrings, as well as code matching verification, and autoupdate on refactoring.
External documentation view
External documentation view is available in the browser for Python standard library, Django, Google App Engine, Scientific packages, etc. (use Shift+F1).
Docstring stub generation
Automatically generate a docstring stub (Epydoc, reStructuredText, Google, NumPy) for a method.