Сегодня познакомимся с некоторыми новыми концепциями, но в основном погрузимся в практику
В языке Python существует специальное значение, обозначающее отсутствие какого-либо значения — None. Это объект
встроенного типа NoneType, который используется для представления «ничего» или «неизвестного» значения.
Уникальность: В Python существует только один экземпляр None. Это означает, что все переменные, которым присвоено
значение None, указывают на один и тот же объект.
Булевое значение: None интерпретируется как False в логических операциях.
Не является пустой строкой, нулем или списком: None — это не 0, не '' (пустая строка) и не пустой список []. Это отдельный объект.
some_var = NoneТак как None не является привычным типом данных нельзя проверить объект на None через ==, это делается так:
x = None
if x is None:
print("Переменная x содержит None")range() — функция, создающая последовательность чисел, чаще всего применяется в циклах for и его производных.
Принимает до 3 параметров. Один обязательный, и два вспомогательных.
Если введен только один параметр, то генерирует последовательность чисел от 0 до указанного числа, не включительно. Например:
for i in range(5):
print(i)
0
1
2
3
4Если введены два параметра, то range их воспринимает как начало и конец, конец не включительно.
for i in range(2, 6):
print(i)
2
3
4
5Если введены три параметра, то третий воспринимается как шаг между элементами В качестве шага можно передавать отрицательные значения!!
for i in range(2, 10, 3):
print(i)
2
5
8Шаг при необходимости может быть отрицательным!
На самом деле для цикла фор существует интересная особенность, если нам нет необходимости перебирать какие-либо
элементы, то мы всегда можем указать символ _ вместо перебираемого объекта
for _ in range(3):
print('It will be printed 3 times')
'It will be printed 3 times'
'It will be printed 3 times'
'It will be printed 3 times'Python - это язык программирования, который предоставляет множество встроенных (built-in) методов для работы с
данными и коллекциями. Эти методы упрощают манипуляции с данными и делают код более читаемым и эффективным.
Рассмотрим несколько встроенных методов python, включая all, any, sorted, len, sum, min и max.
Метод min() находит наименьший элемент в числовой коллекции, а метод max() - наибольший. Рассмотрим пример:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
min_value = min(numbers) # Минимум: 1
max_value = max(numbers) # Максимум: 9Метод sum() вычисляет сумму всех элементов числовой коллекции, такой как список или кортеж. Рассмотрим пример:
numbers = [1, 2, 3, 4, 5]
total = sum(numbers) # Сумма: 15Метод len() используется для определения длины (количества элементов) коллекции, включая строки, списки, кортежи и
другие. Рассмотрим примеры:
text = "Привет, мир!"
length = len(text) # Длина строки: 12
numbers = [1, 2, 3, 4, 5]
length = len(numbers) # Длина списка: 5Метод sorted() сортирует элементы коллекции в порядке возрастания (по умолчанию) и возвращает новый список. Он также
может принимать дополнительный аргумент reverse=True для сортировки в обратном порядке. Рассмотрим пример:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]Практика:
- Найти наибольшее и наименьшее значение в списке
- Найти среднее арифметическое из списка чисел
- Найти второе по величине значение в списке ( [10, 2, 5, 8, 0] -> результат 8)
- Проверить является ли список уже отсортированным.
- Заданы два числа, вывести все нечетные значения между ними
- Заданы два числа, найти сумму всех значений между ними
- Заданы два числа, вывести все числа между ними в обратном порядке (10, 6 -> [10, 9, 8, 7, 6])
- Сложная! Используя цикл
for,rangeи свойства списков найти заданное число Фибоначчи
Python - это язык программирования, который известен своей читаемостью и эффективностью в написании кода. Одним из мощных инструментов, предоставляемых Python, является List Comprehension, или генераторы списков. Это синтаксическая конструкция, которая позволяет создавать списки более компактно и эффективно.
List Comprehension (генераторы списков) - это способ создания новых списков в Python на основе существующего списка или другой итерируемой последовательности. Этот метод позволяет сократить количество кода и улучшить читаемость, особенно при создании списков на основе условий.
Синтаксис List Comprehension выглядит следующим образом:
new_list = [expression for item in iterable if condition]Где:
new_list- новый список, который будет создан.expression- выражение, которое определяет, какие элементы будут включены в новый список.item- переменная, которая принимает каждый элемент из итерируемой последовательности.iterable- итерируемая последовательность, например, список или кортеж.condition(опционально) - условие, которому должен соответствовать элемент, чтобы быть включенным в новый список.
numbers = [x for x in range(10)]
# Результат: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]squares = [x ** 2 for x in range(10)]
# Результат: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [x for x in numbers if not x % 2]
# Результат: [2, 4, 6, 8, 10]text = "Привет, мир! Давайте изучать Python."
words = [word.lower() for word in text.split()]
# Результат: ['привет,', 'мир!', 'давайте', 'изучать', 'python.']List Comprehension также поддерживает вложенные конструкции, позволяя создавать списки более сложной структуры.
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened_matrix = [x for row in matrix for x in row]
# Результат: [1, 2, 3, 4, 5, 6, 7, 8, 9]matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
diagonal = [matrix[i][i] for i in range(len(matrix))]
# Результат: [1, 5, 9]Метод all() проверяет, все ли элементы коллекции истинны (после преобразования в булеан будут иметь значение True).
Если все элементы истинны, он
возвращает True, иначе - False. Рассмотрим пример:
numbers = [1, 2, 3, 4, 5]
result = all([x > 0 for x in numbers]) # True, так как все числа положительныеМетод any() проверяет, есть ли хотя бы один истинный элемент в коллекции. Если хотя бы один элемент истинен, он
возвращает True, иначе - False. Рассмотрим пример:
numbers = [1, 2, 3, -1, -2]
result = any([x < 0 for x in numbers]) # True, так как есть отрицательные числаПрактика (все задания предполагают использование компрехеншенов):
- Создать список чисел от 5 до 100
- Создать список нечетных чисел от 5 до 100
- Есть список слов, создать список который будет содержать первые буквы из каждого слова
- Не связано с компрехеншенами. Из прошлого списка сделать строку
- Есть список чисел. Создать список на его основе, но взять только отрицательные значения
- Создать список квадратов чисел в указанном пользователем диапазоне
- Используя any, выяснить есть ли в списке положительные числа
- Используя all, выяснить все ли числа в списке четные
Работа с файлами - важная часть программирования в Python.
Прежде чем начать работать с файлом, необходимо его открыть с помощью функции open(). Эта функция принимает два
аргумента: имя файла и режим доступа (чтение, запись и т. д.). Например, чтобы открыть файл для чтения, используйте
следующий код:
file = open("example.txt", "r")После завершения работы с файлом, его следует закрыть с помощью метода close():
file.close()Закрытие файла важно, чтобы освободить ресурсы и обеспечить целостность данных. (на самом деле в реальности close применяется редко и ниже я опишу почему)
Для чтения всего содержимого файла можно использовать метод read():
file = open("example.txt", "r")
content = file.read()
file.close()Чтение файла по строкам можно выполнить с помощью итерации:
Файл для питона это перебираемый объект!
file = open("example.txt", "r")
for line in file:
print(line)
file.close()Можно прочитать определенное количество символов из файла с помощью метода read() с аргументом:
file = open("example.txt", "r")
partial_content = file.read(50) # Прочитать первые 50 символов файла
file.close()Для записи текста в файл используйте режим доступа "w" (запись) с функцией write():
file = open("example.txt", "w")
file.write("Привет, мир!")
file.close()Если файл не существует, он будет создан. Если файл существует, его содержимое будет заменено.
Чтобы добавить текст к существующему файлу, используйте режим доступа "a" (добавление):
file = open("example.txt", "a")
file.write("\nДополнительная строка")
file.close()Python предоставляет удобный способ автоматического закрытия файла после завершения работы с ним, используя контекстный
менеджер (with):
Вот этот способ используется на практике гораздо чаще чем обычный open и close. Почему эта магия так работает,
расскажу
дальше по курсу
with open("example.txt", "r") as file:
content = file.read()
# Файл автоматически закроется после завершения блока withВсе вышеупомянутые операции могут быть выполнены как с текстовыми, так и с бинарными файлами. Для работы с бинарными файлами используются режимы доступа "rb" (чтение бинарного файла) и "wb" (запись бинарного файла).
Бинарные файлы это все файлы которые нельзя прочитать как текст (картинки, исполняемые файлы итд.)
# Чтение бинарного файла
with open("binary_file.bin", "rb") as file:
binary_data = file.read()
# Запись бинарного файла
with open("binary_file.bin", "wb") as file:
binary_data = b'\x00\x01\x02\x03\x04'
file.write(binary_data)Практика:
-
Чтение файла и вывод его содержимого: Cоздайте текстовый файл
sample.txtс несколькими строками текста. Написать программу, которая открывает файл и выводит его содержимое на экран. -
Запись в файл: Написать программу, которая запрашивает у пользователя несколько строк текста и записывает их в файл с именем
output.txt. -
Копирование файла: Создайте два текстовых файла
source.txtиdestination.txt. Написать программу, которая читает содержимоеsource.txtи записывает его вdestination.txt. -
Анализ файла: Создайте текстовый файл со списком чисел. Написать программу, которая читает файл, и печатает самое большое число из файла.
-
Конвертация файлов: Создайте текстовый файл с температурами в градусах Цельсия. Написать программу, которая читает файл, конвертирует температуры в градусы Фаренгейта и записывает результаты в новый файл.
-
Подсчет слов в файле: Написать программу, которая считает количество слов в текстовом файле.
-
FizzBuzz: Реализовать физбаз с прошлого занятия, но записывать результаты в файл


