Пять сценариев использования символов подчеркивания в Python

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

1. Отдельные цифры чисел

Могу поспорить, что большинство из нас сошли бы с ума, считая количество нулей в этом числе 10000000000 . Такой способ написания вообще не читается.

К счастью, Python предоставляет удобную функцию для улучшения читаемости кода в этом случае: использование подчеркивания (_) для разделения цифр в числовых литералах. Этот метод помогает разбить длинные числа на более управляемые и визуально различимые фрагменты, что упрощает чтение и понимание вашего кода.

При использовании _ это число теперь записывается как 10_000_000_000. Гораздо читабельнее!

Методические рекомендации

  • Символы подчеркивания можно использовать с различными числовыми литералами:
integer_number = 123_456_789
float_number = 3.14_159_265
binary_number = 0b1100_1010_0011
octal_number = 0o75_64
hex_color = 0xFF_A0_00
  • Не допускается начинать или заканчивать числовой литерал подчеркиванием. Его необходимо разместить между цифрами.
correct_number = 1_000  # correct
wrong_number_underscore_start = _1000  # wrong
wrong_number_underscore_end = 1000_  # wrong

2. Одноразовые переменные

Разработчиков довольно часто интересует только подмножество значений, возвращаемых функцией, или значений, сгенерированных внутри цикла. Вместо присвоения этих «бесполезных» значений значимым именам переменных мы можем использовать простое одинарное подчеркивание (_), чтобы указать, что значение не имеет значения в контексте нашего кода.

В примере ниже показано, насколько полезен _ при распаковке кортежей. Это свидетельствует о нашем пренебрежении к первой и третьей ценностям.

t = (1,2,3,'x')
_, a, _, b = t
print(a, b)  # Output: 2 x

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

# Suppose we want to print "Hello, World!" ten times
for _ in…