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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Что выведет код?
Anonymous Quiz
2%
p
6%
ssss
65%
['p', 'a', 'm']
27%
Error
Что выведет код?
Anonymous Quiz
39%
am
9%
a
13%
m
40%
Error
Что выведет код?
Anonymous Quiz
38%
[]
13%
3
16%
[3]
33%
Error
Какой из способов изменить 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 будет возвращен левый операнд, если он истинный. В противном случае возвращается правый операнд.

Как только найден первый удовлетворяющий условию операнд, наступает «укороченная оценка», то есть определение результата выражения прекращается, как только результат становится известным.