Python: задачки и вопросы
7.76K subscribers
1.18K photos
1 video
1 file
87 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Какой из способов изменить L быстрее?
Anonymous Quiz
14%
1
53%
2
33%
Одинаково быстры вне зависимости от размеров L
Найдите недопустимое имя переменной
Anonymous Quiz
18%
_spam
2%
spam_1
67%
1_spam
14%
yielding
Немного про именование

Синтаксис: (символ подчеркивания или алфавитный символ) + (любое число символов, цифр или символов подчеркивания)
Имена переменных должны начинаться с символа подчеркивания или с алфавитного символа, за которым может следовать произвольное число алфавитных символов, цифр или символов подчеркивания. Допустимыми именами являются: _spam, Spam_1, а 1_Spam, spam$ и @#! – недопустимыми.

Запрещено использовать зарезервированные слова
Имена определяемых вами переменных не могут совпадать с зарезервированными словами, имеющими в языке Python специальное назначение. Например, если попытаться использовать переменную с именем class, интерпретатор выведет сообщение о синтаксической ошибке, однако имена klass и Class являются вполне допустимыми. В таблице перечислены слова, которые в настоящее время зарезервированы языком Python (и, следовательно, запрещены для использования в качестве имен переменных).
Какая переменная хранит результат последнего выражения?
Anonymous Quiz
24%
__X__
7%
__X
9%
_X
60%
_
Cуществует еще целый ряд соглашений – правил, которые не являются обязательными, но которым обычно следуют на практике. Например, имена с двумя символами подчеркивания в начале и в конце ( name) обычно имеют особый смысл для интерпретатора, поэтому вам следует избегать их использования для именования своих переменных.

Ниже приводится список соглашений, которым было бы желательно следовать:
— Имена, начинающиеся с одного символа подчеркивания (_X), не импортируются инструкцией from module import *
— Имена, имеющие два символа подчеркивания в начале и в конце (__X__) являются системными именами, которые имеют особый смысл для интерпретатора.
— Имена, начинающиеся с двух символов подчеркивания и не оканчивающиеся двумя символами подчеркивания (__X), являются локальными («искаженными») для объемлющего класса (смотрите псевдочастные атрибуты).
Имя, состоящее из единственного символа подчеркивания (_), хранит результат последнего выражения при работе в интерактивной оболочке.
Инструкции выражений

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

# Простое вычисление
result = 5 + 3

# Инструкция выражения (выражение, которое вычисляется, но его результат не сохраняется)
5 * 2

# Использование функции print для вывода результата
print(5 * 2) # Это уже не просто инструкция выражения, а полноценная инструкция


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

— Для вызова функций и методов: некоторые функции и методы выполняют огромный объем работы, не возвращая никакого значения. В других языках программирования такие функции иногда называют процедурами. Поскольку они не возвращают значений, которые могло бы потребоваться сохранить, вы можете вызывать эти функции в инструкциях выражений.
— Для вывода значений в интерактивной оболочке: в ходе интерактивного сеанса интерпретатор автоматически выводит результаты вводимых выражений. С технической точки зрения они также являются инструкциями выражений и играют роль сокращенной версии инструкции print.

Теперь вернемся к нашей задаче. Даже при том, что функция print вызывается в отдельной строке, как инструкция выражения, тем не менее она возвращает значение, как и любая другая функция (она возвращает значение None, что возвращается всеми функциями, которые явно не возвращают какого-либо значимого значения):

>>> x = print(‘spam’) # print – это выражение вызова функции
spam
>>> print(x) # но может использоваться, как инструкция выражения
None
👍1
Что выведет код?
Anonymous Quiz
42%
True
6%
False
44%
2
8%
Ничего
В Python числа считаются истинными значениями, то есть в определенных обстоятельствах их можно использовать как эквивалент True.

В случае с оператором or будет возвращен левый операнд, если он истинный. В противном случае возвращается правый операнд.

Как только найден первый удовлетворяющий условию операнд, наступает «укороченная оценка», то есть определение результата выражения прекращается, как только результат становится известным.
Запустится ли этот код без ошибки?
Anonymous Quiz
72%
Да
28%
Нет
В версиях Python 3.X вместо любого выражения допускается использовать многоточие ... (буквально, три точки, следующие друг за другом). Многоточие само по себе не выполняет никаких действий, поэтому его можно использовать как альтернативу инструкции pass, в частности вместо программного кода, который будет написан позднее, – своего рода примечание «TBD» (To Be Done – подлежит реализации).
Будет ли выведена надпись "Цикл завершен"?
Anonymous Quiz
38%
Да
49%
Нет
13%
Этот код вызовет ошибку