Инструкции выражений
В языке Python выражения также могут использоваться в качестве инструкций (то есть в отдельной строке). Однако, поскольку результат вычисления таких выражений не сохраняется, использовать такую возможность имеет смысл только в том случае, если выражение выполняет какие-то полезные действия в виде побочного эффекта.
В качестве инструкций выражения используются обычно в двух ситуациях:
— Для вызова функций и методов: некоторые функции и методы выполняют огромный объем работы, не возвращая никакого значения. В других языках программирования такие функции иногда называют процедурами. Поскольку они не возвращают значений, которые могло бы потребоваться сохранить, вы можете вызывать эти функции в инструкциях выражений.
— Для вывода значений в интерактивной оболочке: в ходе интерактивного сеанса интерпретатор автоматически выводит результаты вводимых выражений. С технической точки зрения они также являются инструкциями выражений и играют роль сокращенной версии инструкции print.
Теперь вернемся к нашей задаче. Даже при том, что функция
В языке Python выражения также могут использоваться в качестве инструкций (то есть в отдельной строке). Однако, поскольку результат вычисления таких выражений не сохраняется, использовать такую возможность имеет смысл только в том случае, если выражение выполняет какие-то полезные действия в виде побочного эффекта.
# Простое вычисление
result = 5 + 3
# Инструкция выражения (выражение, которое вычисляется, но его результат не сохраняется)
5 * 2
# Использование функции print для вывода результата
print(5 * 2) # Это уже не просто инструкция выражения, а полноценная инструкция
В качестве инструкций выражения используются обычно в двух ситуациях:
— Для вызова функций и методов: некоторые функции и методы выполняют огромный объем работы, не возвращая никакого значения. В других языках программирования такие функции иногда называют процедурами. Поскольку они не возвращают значений, которые могло бы потребоваться сохранить, вы можете вызывать эти функции в инструкциях выражений.
— Для вывода значений в интерактивной оболочке: в ходе интерактивного сеанса интерпретатор автоматически выводит результаты вводимых выражений. С технической точки зрения они также являются инструкциями выражений и играют роль сокращенной версии инструкции print.
Теперь вернемся к нашей задаче. Даже при том, что функция
print
вызывается в отдельной строке, как инструкция выражения, тем не менее она возвращает значение, как и любая другая функция (она возвращает значение None, что возвращается всеми функциями, которые явно не возвращают какого-либо значимого значения):>>> x = print(‘spam’) # print – это выражение вызова функции
spam
>>> print(x) # но может использоваться, как инструкция выражения
None
👍1
В Python числа считаются истинными значениями, то есть в определенных обстоятельствах их можно использовать как эквивалент
В случае с оператором
Как только найден первый удовлетворяющий условию операнд, наступает «укороченная оценка», то есть определение результата выражения прекращается, как только результат становится известным.
True
.В случае с оператором
or
будет возвращен левый операнд, если он истинный. В противном случае возвращается правый операнд. Как только найден первый удовлетворяющий условию операнд, наступает «укороченная оценка», то есть определение результата выражения прекращается, как только результат становится известным.
В версиях Python 3.X вместо любого выражения допускается использовать многоточие ... (буквально, три точки, следующие друг за другом). Многоточие само по себе не выполняет никаких действий, поэтому его можно использовать как альтернативу инструкции pass, в частности вместо программного кода, который будет написан позднее, – своего рода примечание «TBD» (To Be Done – подлежит реализации).
Будет ли выведена надпись "Цикл завершен"?
Anonymous Quiz
38%
Да
49%
Нет
13%
Этот код вызовет ошибку
Циклы
Блок
for
начинаются со строки заголовка, где указывается переменная для присваивания (или – цель), а также объект, обход которого будет выполнен. Вслед за заголовком следует блок (обычно с отступами) инструкций, которые требуется выполнить:<target> in <object>: # Связывает элементы объекта с переменной цикла
<statements> # Повторяющееся тело цикла: использует переменную цикла
else:
<statements> # Если не попали на инструкцию ‘break’
Блок
else
не выполнится, если цикл был прерван с помощью оператора break
.Чтобы получить каждый второй символ из строки S, можно извлечь срез с шагом (страйдом) 2:
>>> S = ‘abcdefghijk’
>>> for c in S[::2]: print(c, end=’ ‘)
... a c e g i k
Длина списка, возвращаемого функцией
элементов в кратчайшей последовательности.
zip
, равна длине кратчайшей из последовательностей, если аргументы имеют разную длину. В задаче выше выполняется объединение двух строк с целью параллельной обработки их символов, при этом результат содержит столько кортежей, сколько былоэлементов в кратчайшей последовательности.
Что выведет код?
Anonymous Quiz
12%
['s0', 'p1', 'a2', 'm3']
14%
['0s', '1p', '2a', '3m']
63%
['', 'p', 'aa', 'mmm']
12%
Error
Функция
В контексте задачи выше
В дальнейшем индексы повторяют буквы
enumerate
возвращает объект-генератор, который позволяет итерироваться по значению, создаваемому в процессе выполнения кода, без необходимости загружать все значения в память сразу. Это особенно полезно для работы с большими и динамически генерируемыми наборами данных.E = enumerate(S)
E # <enumerate object at 0x02765AA8>
В контексте задачи выше
c
— каждая из букв 'spam'
, i
— её индексы в строке. Первый элемент результирующего списка равен пустоте, потому что c * i = 's' * 0
('s'
повторяется 0
раз).В дальнейшем индексы повторяют буквы
p
, a
и m
по 1
, 2
и 3
раза соответственно (перемножение строки и целого числа дает повторение строки).Что делает встроенная функция map()?
Anonymous Quiz
6%
Сортирует элементы в итерируемом объекте
78%
Применяет вызов функции к каждому элементу в переданном итерируемом объекте
11%
Формирует пары из элементов в итерируемом объекте и их относительных позиций
6%
Выбирает элементы из итерируемого объекта по условию
Чем отличается встроенная функция sorted() от встроенного метода .sort()?
Anonymous Quiz
43%
Возвращает новый объект, а не изменяет на месте
7%
Применима к многим итерируемым объектам (не только спискам)
9%
При вызове вернет отсортированный список, а не None
41%
Все вышеперечисленное