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]
Метод 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, так как есть отрицательные числа
Практика:
- Найти наибольшее и наименьшее значение в списке
- Найти среднее арифметическое из списка чисел
- Найти второе по величине значение в списке ( [10, 2, 5, 8, 0] -> результат 8)
- Проверить является ли список уже отсортированным.
- Используя any, выяснить есть ли в списке положительные числа
- Используя all, выяснить все ли числа в списке четные
- Заданы два числа, вывести все нечетные значения между ними
- Заданы два числа, найти сумму всех значений между ними
- Заданы два числа, вывести все числа между ними в обратном порядке
- Сложная! Используя цикл
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]
Практика (все задания предполагают использование компрехеншенов):
- Создать список чисел от 5 до 100
- Создать список нечетных чисел от 5 до 100
- Есть список слов, создать список который будет содержать первые буквы из каждого слова
- Не связано с компрехеншенами. Из прошлого списка сделать строку
- Есть список чисел. Создать список на его основе, но взять только отрицательные значения
- Создать список квадратов чисел в указанном пользователем диапазоне
Работа с файлами - важная часть программирования в 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: Реализовать физбаз с прошлого занятия, но записывать результаты в файл