При нажатии на Enter PyCharm добавляет скобки
r = requests.get(url=url)
headers = ''
При нажатии на Enter находясь между кавычками PyCharm редактирует код:
headers = (''
'')
Дублирует кавычки + ставит скобки. Кто знает как убрать?
Ответы (1 шт):
PyCharm старается помочь вам избежать ошибок:
Почему ставит скобки?
Потому, что в Питоне невозможно просто без упреждения разорвать то, что должно быть в одной строке кода, на 2 или более строк:
while a < 2 and b > 5: # неправильно — синтаксическая ошибкаНо это возможно сделать с соответствующим сигналом интерпретатору Питона:
символом продолжения команды
\:while a < 2 and \ b > 5: # теперь правильно — то же самое как while a < 2 and b > 5:
или
тем, что затем не окончена начальная скобка (
(или[или{) — тогда Питон ждет ее окончания обратной скобкой ()или]или}):fruits = [апельсин, яблоко, ананас, ] # правильноЗначит, что в первом примере мы можем для продолжения команды использовать вместо символа продолжения
\излишние скобки:while (a < 2 and b > 5): # тоже правильноИменно такой, по моему более красивый подход, использует PyCharm в вашем случае, когда вы еще не окончили команду и хотите ее продолжить в следующей строке кода.
Почему дублирует кавычки / апострофы?
Это не дублирование, а окончание первой части строки и подготовка на вторую.
Объясню:
В Питоне невозможно строку в кавычках или апострофах продолжать на следующей строке кода (для этого нужно применить тройку кавычек / апострофов:
'Имя Отечество' # не возможно — синтаксическая ошибка '''Имя Отечество''' # правильноPyCharm, чтобы избежать ошибки, правильно предполагает, что вы вашу (однострочную) строку хотите продолжить на следующей строке кода.
Для этого он использует синтаксис для соединения строковых литералов в одну строку тем, что они просто запишутся возле себя:
'Какая ' 'красивая ' 'девушка' # то же самое как 'Какая красивая девушка'Вы пока после апострофа ничего не написали — значит, вы хотите продолжить пустую строку.
Для того PyCharm окончит вашу пустую строку апострофом (т.е. сделает то, что вы назвали «дублированием кавычки») и в следующей строке кода для вас приготовит новую пару кавычек с курсором между ними, чтобы вы сразу могли писать продолжение вашей (пустой) строки:
headers = ('' '')
Примечание:
Представите себе, что PyCharm бы этого не сделал и ваш код бы выглядел так, как вы хотели:
headers = '
что-то бы вы здесь, вероятно, написали'
И затем (может быть) вы бы здесь, на Stack Overflow на русском, поставили вопрос
«Почему мой код выдает ошибку?» ;-)