Подтвердить что ты не робот

Верно ли, что я не могу использовать фигурные скобки в Python?

Я читал, что Python делает все это "кодовые блоки" отступом, а не с фигурными фигурными скобками. Это правильно? Таким образом, функции, если и что-то вроде этого появляются, не окружая их блок фигурными фигурными скобками?

4b9b3361

Ответ 1

if foo: #{
    print "it true"
#}
else: #{
    print "it false!"
#}

(Очевидно, это шутка.)

Ответ 2

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

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Ответ 3

Исправьте блоки кода. Однако вы определяете словари в Python, используя фигурные скобки:

a_dict = {
    'key': 'value',
}

Ahhhhhh.

Ответ 4

Да. Кудрявые скобки не используются. Вместо этого вы используете символ :, чтобы ввести новые блоки, например:

if True:
    do_something()
    something_else()
else:
    something()

Ответ 6

Yup:)

И там (обычно) разница между 4 пробелами и вкладкой, поэтому убедитесь, что вы стандартизировали использование.

Ответ 7

Да.

if True:
    #dosomething
else:
    #dosomething else

#continue on with whatever you were doing

В принципе, везде, где у вас была бы открытая фигурная скобка, вместо этого используйте двоеточие. Нельзя закрыть область. Это не займет много времени, чтобы он чувствовал себя полностью естественным.

Ответ 8

Python with Braces - это вариант python, который позволяет вам делать именно это. Это проект, над которым я работал в последнее время вместе с моим другом.

Ответ 9

Python не использует фигурные скобки для блоков кода:

>>> while True {
  File "<stdin>", line 1
    while True {
               ^
SyntaxError: invalid syntax

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

(Обратите внимание на сообщение "не случайность" - это пасхальное яйцо, отражающее это дизайнерское решение.)

В качестве языка, предназначенного для простого использования и чтения, Python использует двоеточия и отступы для обозначения блоков кода. Определение блоков кода по отступу является необычным и может стать неожиданностью для программистов, которые привыкли к таким языкам, как С++ и С#, потому что эти (и многие другие языки) не заботятся о дополнительных пробелах или отступах. Это правило предназначено для повышения удобочитаемости кода Python за счет того, что некоторые программисты могут использовать разные пробелы.

Увеличение уровня отступа указывает на начало кодового блока, а уменьшение указывает на конец блока кода. По соглашению каждый отступ имеет четыре пробела.

Вот простой пример, который суммирует все целые числа от 0 до 9. Обратите внимание, что диапазоны в Python включают первое значение, но не включая последнее значение:

j = 0
for i in range(0, 10):
    j += i
print(j)

Ответ 10

Как уже упоминалось, вы правы, никаких фигурных скобок на Python. Кроме того, у вас нет конца или endif или endfor или чего-либо подобного (как в паскале или рубине). Все блоки кода основаны на отложениях.

Ответ 11

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

Я программировал в Python в течение нескольких лет и очень увлекался его структурой кода, потому что это действительно проще. Вы когда-нибудь оставляли закрытую фигурную фигурку в большой программе и часами пытались ее найти? Не проблема в Python. Когда я оставил эту работу и должен был начать использовать PHP, я действительно пропустил синтаксис Python.

Ответ 12

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Ну, это многое объясняет.
Обратите внимание, что Python изначально поддерживает блоки кода с фигурными скобками! Посмотрите на ниже:

if x: #{
    x += 1
#}

Для программистов на Аде или Паскале я с удовольствием открываю вам:

if x: #BEGIN
    ...
#END

Взято из документов:

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

if x: #BEGIN
     x = x + 1
#}

И это для пользователей Bash:

if x:
    x=99
#fi

Более того, для программистов, знакомых с C, C++ и т.д., Вы можете опустить фигурные скобки только для одного оператора:

if x:
    do_stuff()

Красивая. Как упоминалось ранее, Python также может автоматически исправлять код с неверными разделителями, поэтому этот код также допустим:

if x:
    do_a_hundred_or_more_statements()
    x = x + 1
    print(x)



Поскольку это должно заставить вас любить Python еще больше, я отправлю вам последнюю цитату из документации.

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

Единственным ограничением является то, что этим специальным разделителям должен предшествовать символ хэштега.

Ответ 13

В Python четыре пробела () используются для отступа вместо фигурных скобок ({). Тем не менее, фигурные скобки используются в нескольких местах в Python, которые служат разным целям:

  1. Инициализировать непустой набор (неупорядоченный набор уникальных элементов):

    fuitBasket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    

    цитирование

  2. Инициализируйте пустой словарь (пары ключ-значение):

    telephoneNumbers = {}
    
  3. Инициализировать непустой словарь (пары ключ-значение):

    telephoneNumbers = {'jack': 4098, 'sape': 4139}
    

    цитирование

Ответ 14

В отношении строки формата фигурные скобки приобретают другое значение. См. Https://docs.python.org/3/library/string.html?highlight=curly:

Строки формата содержат "замещающие поля", заключенные в фигурные скобки {}. Все, что не содержится в фигурных скобках, считается буквальным текстом, который копируется без изменений в выходные данные. Если вам нужно включить символ фигурной скобки в буквальный текст, его можно избежать путем удвоения: {{и}}.

Ответ 15

Я дам несколько мыслей по этому вопросу.

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

Во-первых, нам действительно нужны фигурные скобки? Я имею в виду, как человек. Если вам разрешено использовать фигурные скобки в Python, не будете ли вы использовать отступы? Конечно, вы все равно будете использовать отступы! Потому что вы хотите написать читаемый код, а отступы - один из ключевых моментов.

Во-вторых, когда нам действительно нужны фигурные скобки? Насколько я думаю, нам нужны только фигурные скобки, когда нам нужно минимизировать наши файлы исходного кода. Как минимизированные файлы JS. Но будете ли вы использовать Python в ситуации, когда даже размер исходного кода чувствителен? Также, насколько я думаю, ты не будешь.

Итак, наконец, я думаю, что фигурные скобки как-то похожи ; , Это просто историческая проблема, с ней или без нее, мы всегда будем использовать отступы в Python.

Ответ 16

Да, вы можете использовать эту библиотеку/пакет {Py} Использовать фигурные скобки вместо отступов, а также добавить гораздо больше сахара в синтаксис Python.

https://pypi.org/project/brackets/

// Use braces in Python!

def fib(n) {
  a, b = 0, 1
  while (a < n) {
    print(a, end=' ')
    a, b = b, a+b
  }
  print()
}

/*
  Powerful anonymous functions
*/

print([def(x) {
  if(x in [0, 1]) {
    return x
  };
  while (x < 100) {
    x = x ** 2
  };
  return x
}(x) for x in range(0, 10)])