Python для экзамена | Красных и Малков
Open in Telegram
Всё, чтобы сдать питон на 10 Авторы: @egkrasnykh, @svyat_3svyat Рецензенты: @aaparshina, @mzabelin8
Show more409
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
Repost from N/a
Ой, как мне эта задача понравилась...
Что покажет приведенная ниже программа?
def swap(a, b):
a, b = b, a
a = 4
b = 3
swap(a, b)
print(a - b)Списочные выражения
Иногда нужно составить список по определенному правилу. Например, список кубов чисел от одного до десяти. Для этого можно использовать цикл
for и списочный метод .append():
result = []
for num in range(1, 11):
result.append(num**3)
Но можно сделать по-другому: уместить этот цикл в одну строку. Это называется списочным выражением, потому что генерирует список по установленным правилам:
result = [num**3 for num in range(1,11)]
Эти два фрагмента делают одно и то же. Для того, чтобы программа была компактной, лучше использовать списочные выражения там, где они применимы.
Алгоритм составления списочного выражения
1. Всё пишем в квадратных скобках.
2. Начинаем справа, пишем то же самое, что при создании цикла for: переменную цикла и диапазон значений для неё — коллекцию или функцию range().
3. Слева пишем формулу, по которой будет вычисляться каждый элемент списка.
4. При необходимости справа можно написать if и условие, при котором элемент добавляется в список.
Блока else здесь нет, операторов continue и break тоже. Мы сравниваем списочные выражения с циклами только для целей изучения, на самом деле это разные инструменты языка Python.
Ещё есть кортежные, множественные и словарные выражения с похожим оформлением, но соответственно в круглых и фигурных скобках.
Примеры готовых списочных выражений:
🔘 Все числа от нуля до двадцати:
[num for num in range(1, 21)]
🔘 Все символы из строки:
[sym for sym in 'Тяжело в питоне - легко в...']
🔘 Все четные числа от нуля до ста:
[num for num in range(101) if num % 2 == 0]Как называть переменные
Запомните раз и навсегда: не называйте переменные от балды. По названию должно быть примерно понятно, для чего нужна информация, которая хранится в этой переменной. Иначе другому человеку сложно разобраться в коде, поставить за него оценку или выполнить свою часть работы.
Вот так правильно называть переменные:
data, name, num, temp, result...
А так неправильно:
a, b, c, x, y...
Есть только два исключения:
1. Программа очень маленькая, или переменная используется в ней один раз в двух соседних строчках кода. Поматросили и бросили, имени не спрашивали.
2. Переменная цикла for, которая в его теле не используется. В таком случае назовите её _. Синтаксис Python позволяет это сделать.lambda — анонимная функция
Напишем функцию, которая будет возвращать квадрат числа. Сначала так, как это делается по умолчанию:
def sqr(num):
return num**2
У этой функции есть название, и её можно вызывать многократно после того, как она появилась в программе. Но иногда нам нужна простая функция на один раз. И в питоне есть такой вид пользовательских функций — анонимные. Для того, чтобы их определить, используется ключевое слово lambda.
lambda num: num**2
Эта функция делает всё то же самое, что и предыдущая. Но нашу lambda-функцию можно передать в качестве аргумента (в скобках к другой функции) и не усложнять программу.
Алгоритм при создании lambda-функции:
1. Пишем ключевое слово lambda, ставим пробел.
2. Пишем через запятую все параметры, которые принимает наша функция. Можно использовать все виды параметров, как и в обычных функциях.
3. Ставим двоеточие и пишем то, что возвращает функция, без слова return. При этом можно использовать тернарный условный оператор — который записывается одной строкой. Вот так:
lambda x: 'even' if x % 2 == 0 else 'odd'
4. В отличие от обычных, анонимные функции одновременно создаются и выполняются.
Ограничения для анонимных функций:
1. Нельзя использовать операторы и ключевые слова, в том числе pass — оператор бездействия.
2. Не больше одной строки.Если вас бесит красный цвет этого канала, кидайте буст, и мы сможем сделать нормальный: https://t.me/py_for_ex?boost. Ну и ещё добавим всяких плюшек!
Как работает преобразование в тип данных bool?
Логический тип данных bool может содержать всего два значения — True или False. Число 0 преобразуется в False и наоборот. Число, отличное от нуля, преобразуется в True и наоборот.
Такая программа:
print(bool(0)) print(int(False)) print(bool(1)) print(int(True))выведет:
False 0 True 1А вот с коллекционными типами данных нужно понимать, что False — это отсутствие информации, a True — её наличие. Можно провести аналогию с теми же нулями и единицами в компьютере. Ноль — это когда тока нет, единица — когда ток есть. Не забываем, что коллекционные типы данных — это строки(!), списки, кортежи, множества, неизменяемые множества и словари. Такая программа:
print(bool('String'))
print(bool(''))
выводит:
True FalseПустая строка преобразуется в False, непустая строка — в True. С остальными типами коллекций всё точно так же, пустая коллекция — False, непустая — True. Во вчерашней задаче мы преобразовывали строку
'False' в тип данных bool. Строка непустая, значит, получается True. И неважно, что в этой строке написано.Осторожно, скам
Сегодня многим на корпоративную почту пришло письмо от anastasiaprogrammistovna@gmail.com, где рекламируют канал @hse_rescue_rangers и обещают платно сделать за вас все домашки по питону.
Мы знаем, что авторы этого канала — недобросовестные люди. В прошлом году те, кто пользовались их услугами, сдали одинаковые ответы, сгенерированные ChatGPT, и столкнулись с более неприятными санкциями, чем неудовлетворительная оценка.
Наш канал бесплатный и всегда будет таким. Мы не поможем вам списать и не приветствуем нечестные способы получения оценок. Но мы сделаем всё возможное, чтобы вы смогли честно закрыть вопрос с питоном. Если вам нужна индивидуальная консультация — пишите в личные сообщения @egkrasnykh.
С любовью и уважением,
Красных и Малков
Upd. Показывать «отзывы о наc» с помощью тг-канала с отключенными комментариями — верх идиотизма.
Онлайн-консультация «Коллекционные типы данных. Методы строк и списков»
Конспект с сегодняшней консультации
Рекомендую открывать с помощью VS Code.
Все части конспекта, которые являются исполняемым кодом, оформлены как многострочные комментарии. Чтобы запустить тот код, который вам интересен, уберите три одинарных кавычки в начале и в конце.
Теперь разберем логические высказывания.
Если вы не изучали логику на первом курсе, здесь может быть непонятно. Пишите в комментарии, и мы обязательно поможем разобраться!
Всем привет! Переходим ко второму уроку «Логический тип данных и условные конструкции». Сначала более подробно рассмотрим тип данных bool.
Рассказываем про ввод и вывод данных, а ещё про комментарии в коде.
