Я читал, что Python делает все это "кодовые блоки" отступом, а не с фигурными фигурными скобками. Это правильно? Таким образом, функции, если и что-то вроде этого появляются, не окружая их блок фигурными фигурными скобками?
Верно ли, что я не могу использовать фигурные скобки в Python?
Ответ 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()
Ответ 5
Использовать Whyton:
http://writeonly.wordpress.com/2010/04/01/whython-python-for-people-who-hate-whitespace/
Ответ 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, которые служат разным целям:
-
Инициализировать непустой набор (неупорядоченный набор уникальных элементов):
fuitBasket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
-
Инициализируйте пустой словарь (пары ключ-значение):
telephoneNumbers = {}
-
Инициализировать непустой словарь (пары ключ-значение):
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)])