Рубрики
Без рубрики

Python Semicolons: Как они работают и почему ненавистники говорят вам, чтобы избежать их

Каждый кодер Python ненавидит полуконов; завершить заявления. Если вы похожи на меня, и кто-то показывает вам следующий код Python, вы начнете задаваться вопросом, замешал ли человек Python с Java или C ++. Пример запятой Python [одноклассник] Вот как можно использовать точку с запятой :;;; Print (X, … Python Semicolons: Как они работают и почему ненавистники говорят вам, чтобы избежать их читать дальше »

Автор оригинала: Chris.

Каждый Python Coder ненавидит запястья ; к Прекратить заявления Отказ

Если вы похожи на меня, и кто-то показывает вам следующий код Python, вы начнете задаваться вопросом, замешал ли человек Python с Java или C ++.

Пример запятой Python [одноклассник]

Вот как можно использовать точку с запятой:

x = 'hi'; y = 'young'; z = 'friend'; print(x, y, z);

Если вы запустите этот Python One-Liner с запятой, вы получите следующий выход:

hi young friend

На первом представлении он даже не похож на код Python! C ++ имеет полуконные запятыми. У Java есть запястья. Но Python должен быть некоммерческим языком, не так ли?

Python Semicolon Meme.

Ну, как оказывается, Python знает ; довольно хорошо:

print(';')

Выход:

;

Qed.

Python semicolon soment.

Значение запятой в языках программирования, таких как Java и C ++, это завершить текущее утверждение Отказ На этих языках вы будете использовать его после каждой одной строки. Без этого переводчик считает, что код еще не прекратился И он начинает искать больше. Любой кодер Java или C ++ знает ситуации, когда произошла ошибка, потому что они забыли использовать точку с запятой в их коде.

В Python, однако, то часовые точки имеют немного другое значение. Они позволяют вам создавать так называемые Составные утверждения Отказ Если Конструкция – это составное утверждение. для Цикл – это сложное утверждение. И ряд полуконных выступлений Python с запятой, представляет собой составные утверждения.

Например, вот три заявления Python:

print('a')
print('b')
print('c')

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

print('a'); print('b'); print('c')

Другой код. Тот же результат.

Python Нет запятых

Во многих статьях ( здесь и здесь и здесь ), Python Coders рекомендуют Не использовать запястья. Они часто считают не быть “Питон” Отказ Почему? Потому что они считаются нечитаемыми и ненужными. Дзэн Питона утверждает, что код Python должен быть читабелен:

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Читаемость считается! И: Резер лучше плотного!

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

Python Semicolon для петли

Можете ли вы использовать точку с запятой в сочетании с циклом для цикла? Да, ты можешь! Но только если все утверждение начинается с цикла для цикла, и вы используете точку с запятой для создания соединения оператора в виде корпуса петли. Вы не можете использовать Semicolon, чтобы отделить нормальное выражение из петли Python:

# ALLOWED
print('a'); print('b'); print('c')

# ALLOWED
for i in range(3): print('a'); print('b')

# NOT ALLOWED
print('a'); for i in range(3): print('b')

Третье заявление бросает ошибку синтаксиса:

Вы можете попробовать это сами в нашей интерактивной Python Shell:

Упражнение : Исправьте неисправный код и проверьте результат.

Python Semicolon после перерыва

Можете ли вы использовать точку с запятой после ключевого слова бронирования? Ответ: Да, конечно. Вы можете использовать запястье почти везде. Это не имеет смысла делать это, хотя.

while True:
    if True:
        break;

print('hi')
# hi

Python Training Semicolon в конце строки

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

print('hi');
name = 'Ann';
print(name);

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

Python Semicolon Неверный синтаксис

Вы получите синтаксическую ошибку, если вы попытаетесь отделить обычный оператор Python из оператора блока, такого как цикла для цикла, цикл While, или IF Block:

# NOT ALLOWED
print('a'); for i in range(3): print('b')

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

(Ну, я хотел бы использовать эту функцию в любом случае для создания еще более продвинутых Python One-Liners. Что я могу сделать? Я их люблю.)

Python Semicolon Если

Вы можете использовать SEMICOLON, чтобы сжать многострочную, если тело в одной строке:

if 2+2 == 4: a = 4-2; print(a)
# 2

Опять же, вы не можете использовать Semicolon, чтобы отделить нормальное утверждение Python из блока IF, хотя:

a = 4-2; if 2+2 == 4: print(a)
# 2

Это приводит к ошибке синтаксиса!

Python Semicolon Lambda

Можете ли вы использовать Semicolon внутри функции лямбда? Ответ – нет!

Но вы можете определить простую функцию в одной строке, отделяя оператор возврата из некоторых других операторов тела через точку с запятой:

def f(x): y = x+x; return x

Если вы распечатаете пример Run, вы увидите, что не имеет проблем с проблемами:

print(f(2))
# 2

Для функции лямбда это не имеет смысла. Почему? Поскольку «тело» функции лямбда рассчитывает возвращаемое значение вызова функции. Если у вас был запятой, вы создали несколько результатов – один для каждого выражения с запятой. Неясно, как решить этот столкновение! Итак, по понятным, что создатели Питона избегали этой двусмысленности.

Резюме: Python Semicolon Использование

Вы будете использовать Semicolon в основном, чтобы написать Python One-Listers. Вот некоторые употребления с запятой:

  • Чтобы написать Python One-Liners только для удовольствия – если это вы, проверьте мою книгу “Python One-listers” Действительно
  • Написать Python One-Listers, чтобы быть выполняется из вашей командной строки.
  • Сжать тривиальные заявления и сэкономить немного места, например х = 2; И тебе не нравится х ,, 3 Отказ
  • Пройти одноклассники в Время течения функция и измерить прошедшее время выполнения.

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

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

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/python-semicolons-how-they-work-and-why-haters-tell-you-to-avoid-them/”