57.59K
Категория: ПрограммированиеПрограммирование

Алгоритмизация и программирование. Семинар 7

1.

Алгоритмизация и
программирование
Семинар 7

2.

Файлы
• Почему нужна работа с файлами? (потому что)
• В файлах удобно хранить много информации
• В файлы можно как писать, так и читать из них
• Файл есть файл. Расширение не важно

3.

Открытие файлов
• open(file_path, <режим открытия>)
• Пример: open(‘test.txt’, ‘w’)
• Режимы открытия:
• ‘r’ – открыть на чтение
• ‘r+’ – открытие на чтение и запись. Указатель в начале файла
• ‘w’ – открытие на запись. Указатель в начале файла
• ‘w+’ – открытие на чтение и запись. Перезаписывает существующий файл
• ‘a’ – открытие на дозапись. Указатель в конце файла
• ‘a+’ – открытие на добавление и чтение. Указатель в конце файла

4.

Закрытие файла
• Зачем нужно?
• Почему важно?
• with – умное открытие файла с автоматическим закрытием
• with open(‘input.txt’, ‘r’) as file_input:
• ….

5.

Чтение из файла
• read(n) – чтение n символов из файла. Если n не указано, то весь
файл
• String = file.read()
• readline(n) – чтение строки до достижения символа \n. Если
указан n, то чтение будет делиться на строки размером n байт
• readlines(n) – читается сколько-то строк, которые примерно будут
весить n байт. Если n не указан, то будет считан весь файл
• Readline и readlines сохраняют символ перевода строки!

6.

Красивый способ считать файл
• file = open(‘file.txt’, ‘r’)
• for line in file:
• write(line)

7.

rstrip
• Str.rstrip(chars)
• Данный метод удаляет символы chars из конца строки
• Если chars не задан, удаляет пробелы.
• Пример:
• 'mississippi'.rstrip('ipz')
• line.rstrip('\n\r')
• Есть аналогичная lstrip
# 'mississ’

8.

Запись в файл
• file.write(string)
• file.writelines(list)

9.

Аргументы и распаковка
• Аргументы могут быть позиционные и именованные
• Кортеж –> позиционные аргументы, словарь -> именованные
• Распаковка кортежа - *, распаковка словаря - **
• Аналогично для аргументов внутри функции:
• def(*args), def(**kwarfs)

10.

Функции как объекты
def abc(str):
print(str)
func = abc
func(‘hello’)
https://habr.com/ru/companies/otus/articles/725374/

11.

Коллбэк (callback)
• Коллбэк — это функция, которая передаётся на вход другой
функции (или другому участку кода), чтобы её запустили в ответ
на какое-то событие. С помощью этого приёма работают чатботы
и интерактивные веб-странички: пользователь нажимает на
кнопку, его действие генерирует событие и на событие реагирует
коллбек (функция-обработчик).

12.

Пример callback
from time import time_ns
def timeit(function):
start_time = time_ns()
function()
end_time = time_ns()
return end_time - start_time
timeit(print) # 28278 наносекунд

13.

Лямбды
• Лямбда-функции используются тогда, когда нам нужна функция
как объект
• Пример:
double = lambda x: x*2
print(double(5)) # 10
• Синтаксис:
• lambda аргументы: выражение

14.

Примеры использования
• Map
current_list = [1, 3, 4, 6, 10, 11, 15, 12, 14]
new_list = list(map(lambda x: x*2 , current_list))
print(new_list) #[2, 6, 8, 12, 20, 22, 30, 24, 28]

15.

Примеры использования
• Sorted
current_list = [[10,6,9],[0, 14, 16, 80],[8, 12, 30, 44]]
sorted_list = lambda x: (sorted(i) for i in x)
second_largest = lambda x, func: [y[len(y)-2] for y in func(x)]
result = second_largest(current_list, sorted_list)

16.

Вопросы?
English     Русский Правила