Из документации Python:
«Выражение в скобках может быть разделено на несколько строк без использования символа обратного слеша»
В данном коде Python автоматически интерпретирует переносы строк внутри скобок как продолжение выражения. В итоге вычисляется арифметическое выражение: 𝟷 + 𝟸 + 𝟹 + 𝟺 = 𝟷𝟶.
'𝙰𝚗 𝚎𝚡𝚙𝚛𝚎𝚜𝚜𝚒𝚘𝚗 𝚒𝚗 𝚙𝚊𝚛𝚎𝚗𝚝𝚑𝚎𝚜𝚎𝚜, 𝚜𝚚𝚞𝚊𝚛𝚎 𝚋𝚛𝚊𝚌𝚔𝚎𝚝𝚜 𝚘𝚛 𝚌𝚞𝚛𝚕𝚢 𝚋𝚛𝚊𝚌𝚎𝚜 𝚌𝚊𝚗 𝚋𝚎 𝚜𝚙𝚕𝚒𝚝 𝚘𝚟𝚎𝚛 𝚖𝚘𝚛𝚎 𝚝𝚑𝚊𝚗 𝚘𝚗𝚎 𝚙𝚑𝚢𝚜𝚒𝚌𝚊𝚕 𝚕𝚒𝚗𝚎 𝚠𝚒𝚝𝚑𝚘𝚞𝚝 𝚞𝚜𝚒𝚗𝚐 𝚋𝚊𝚌𝚔𝚜𝚕𝚊𝚜𝚑𝚎𝚜'.
«Выражение в скобках может быть разделено на несколько строк без использования символа обратного слеша»
В данном коде Python автоматически интерпретирует переносы строк внутри скобок как продолжение выражения. В итоге вычисляется арифметическое выражение: 𝟷 + 𝟸 + 𝟹 + 𝟺 = 𝟷𝟶.
👍2
В Python можно использовать множественные операторы сравнения в одной цепочке. Выражение «𝟻 < 𝚡 < 𝟷𝟶 < 𝟿𝟿𝟿» эквивалентно «(𝟻 < 𝚡) 𝚊𝚗𝚍 (𝚡 < 𝟷𝟶) 𝚊𝚗𝚍 (𝟷𝟶 < 𝟿𝟿𝟿)».
Поскольку 𝚡 = 𝟽:
— 𝟻 < 𝟽 = 𝚃𝚛𝚞𝚎;
− 𝟽 < 𝟷𝟶 = 𝚃𝚛𝚞𝚎;
− 𝟷𝟶 < 𝟿𝟿𝟿 = 𝚃𝚛𝚞𝚎.
Все условия выполняются, поэтому результат выражения 𝚃𝚛𝚞𝚎.
В Python цепочки сравнений выполняются слева направо и объединяются оператором «𝚊𝚗𝚍». Если любое из сравнений возвращает 𝙵𝚊𝚕𝚜𝚎, то и вся цепочка возвращает 𝙵𝚊𝚕𝚜𝚎.
Поскольку 𝚡 = 𝟽:
— 𝟻 < 𝟽 = 𝚃𝚛𝚞𝚎;
− 𝟽 < 𝟷𝟶 = 𝚃𝚛𝚞𝚎;
− 𝟷𝟶 < 𝟿𝟿𝟿 = 𝚃𝚛𝚞𝚎.
Все условия выполняются, поэтому результат выражения 𝚃𝚛𝚞𝚎.
В Python цепочки сравнений выполняются слева направо и объединяются оператором «𝚊𝚗𝚍». Если любое из сравнений возвращает 𝙵𝚊𝚕𝚜𝚎, то и вся цепочка возвращает 𝙵𝚊𝚕𝚜𝚎.
❤4
❤1
Рассмотрим выполнение кода пошагово:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
❤1
Из документации Python:
«Изменчивость объекта определяется его типом; например, числа, строки и кортежи являются неизменяемыми, а словари и списки — изменяемыми».
При попытке выполнить операцию присваивания 𝚗𝚊𝚖𝚎[𝟶] = '𝙿' интерпретатор выдаст ошибку:
`𝚃𝚢𝚙𝚎𝙴𝚛𝚛𝚘𝚛: '𝚜𝚝𝚛' 𝚘𝚋𝚓𝚎𝚌𝚝 𝚍𝚘𝚎𝚜 𝚗𝚘𝚝 𝚜𝚞𝚙𝚙𝚘𝚛𝚝 𝚒𝚝𝚎𝚖 𝚊𝚜𝚜𝚒𝚐𝚗𝚖𝚎𝚗𝚝`
Для изменения строки необходимо создать новую строку. Существует несколько способов:
В данном случае правильным решением было бы:
𝚗𝚊𝚖𝚎 = '𝙿' + 𝚗𝚊𝚖𝚎[𝟷:]
𝚙𝚛𝚒𝚗𝚝(𝚗𝚊𝚖𝚎) # Выведет: 𝙿𝚎𝚗𝚗𝚢
Фундаментальное свойство строк в Python — их неизменяемость, которая обеспечивает безопасность данных и оптимизацию памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
❤1
В данном случае, 𝚕𝚎𝚝𝚝𝚎𝚛𝚜 = '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝙸𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣' — строка длиной 𝟸𝟼 символов. 𝚕𝚎𝚝𝚝𝚎𝚛𝚜[−𝟹:] — срез с отрицательным индексом от −𝟹 до конца строки.
Отрицательный индекс −𝟹 означает третий символ с конца строки. Для строки '𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝙸𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣' это символ '𝚡':
Срез 𝚕𝚎𝚝𝚝𝚎𝚛𝚜[−𝟹:] берет все символы начиная с позиции −𝟹 (включительно) до конца строки, то есть последние три символа: '𝚡𝚢𝚣'.
Из
«Некоторые последовательности, включая встроенные, интерпретируют отрицательные индексы, добавляя длину последовательности. Например, `𝚊[−𝟸]` эквивалентно `𝚊[𝚗−𝟸]`, то есть обращается ко второму с конца элементу последовательности `𝚊` длиной `𝚗`. Замечание, сделанное выше об отрицательных индексах, также относится и к отрицательным границам срезов».
При использовании срезов с отрицательными индексами удобно извлекать элементы с конца последовательности, не зная точно её длину.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🧩 Что выведет код?
Anonymous Quiz
74%
4, 4, 1
0%
[1, 2, 3, 4, len, max, min]
4%
[len, '2max', '3min', 4]
22%
Error
❤1
Пошагово:
− 𝚏𝚞𝚗𝚌(𝚕𝚜𝚝) для 𝚏𝚞𝚗𝚌 = 𝚕𝚎𝚗 возвращает 𝚕𝚎𝚗(𝚕𝚜𝚝) = 𝟺 (длина списка из 𝟺 элементов)
− 𝚏𝚞𝚗𝚌(𝚕𝚜𝚝) для 𝚏𝚞𝚗𝚌 = 𝚖𝚊𝚡 возвращает 𝚖𝚊𝚡(𝚕𝚜𝚝) = 𝟺 (максимальный элемент)
− 𝚏𝚞𝚗𝚌(𝚕𝚜𝚝) для 𝚏𝚞𝚗𝚌 = 𝚖𝚒𝚗 возвращает 𝚖𝚒𝚗(𝚕𝚜𝚝) = 𝟷 (минимальный элемент)
Python позволяет использовать функции как объекты первого класса, что означает, что функции можно хранить в переменных, передавать в качестве аргументов и возвращать из других функций.
Из документации Python:
«Возвращает число элементов в объекте. Аргументом может быть последовательность (например, строка, байты, кортеж, список или диапазон) или коллекция (например, словарь, множество или замороженное множество)».
«Возвращает наибольший элемент в итерируемом объекте или наибольший из двух и более аргументов».
«Возвращает наименьший элемент в итерируемом объекте или наименьший из двух и более аргументов».
Таким образом, код выполняется без ошибок и выводит на экран по одному значению на каждой итерации цикла:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1