Материал: Разработка программных пакетов на языке Python. учебное пособие. Амоа К.А., Рындин Н.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.1.7. Файлы

Рассмотрим встроенные средства python для работы с файлами: открытие, закрытие, чтение и запись.

Прежде всего, необходимо открыть файл. Для этого существует встроенная функция open:

f = open('text.txt', 'r')

Первый аргумент функции – имя файла. Путь к файлу может быть относительным или абсолютным.

Второй аргумент, это режим, в котором мы будем открывать файл. Режимы могут быть объединены, то есть, к примеру, ‘rb’ — чтение в

двоичном режиме. По умолчанию режим равен ‘rt’.

И последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку.

Таблица 5

 

Режимы

 

 

 

 

Режим

Описание

 

 

'r'

открытие на чтение (является

 

значением по умолчанию)

 

 

w'

открытие на запись, содержимое

 

файла удаляется, если файла не

 

существует, создается новый

 

 

'a'

открытие на дозапись, информация

 

добавляется в конец файла

 

 

'b'

открытие в двоичном режиме

 

 

't'

открытие в текстовом режиме

 

(является значением по умолчанию)

 

 

'+'

открытие на чтение и запись

 

 

15

Таблица 6

Методы работы с файлами

 

 

Метод

Описание

 

 

f.read()

Чтение файла целиком в

 

единственную строку

 

 

f.read(N)

Чтение следующих N

 

символов (или байтов) в строку

 

 

f.readline()

Чтение следующей

 

текстовой строки (включая

 

символ конца строки) в строку

 

 

f.readlines()

Чтение файла целиком в

 

список строк (включая символ

 

конца строки)

 

 

f.write(string)

Запись строки символов

 

(или байтов) в файл

 

 

f.writelines(list)

Запись всех строк из списка

 

в файл

 

 

f.close()

Закрытие файла вручную

 

(выполняется по окончании

 

работы с файлом)

 

 

f.flush()

Выталкивает выходные

 

буферы на диск, файл остается

 

открытым

 

 

 

Изменяет текущую позицию в

f.seek(N)

файле для следующей

 

операции, смещая ее на N байтов

 

от начала файла.

 

 

for line in

Итерации по файлу, построчное

open(‘data’):

чтение

операции над

 

line

 

 

 

open(‘f.txt’,

Файлы с текстом Юникода в

encoding=’latin-1’)

Python 3.0

 

 

open(‘f.bin’, ‘rb’)

Чтение двоичных файлов

 

 

16

2.1.8. Генераторы

Список

>>>l = [i for i in range(10)]

>>>l

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Кортеж

Генератор кортежа возвращает не объект кортеж, а объект-генератор, что позволяет существенно экономить занимаемую кортежем память:

>>>t = (i for i in range(10))

>>>t

<generator object <genexpr> at 0x106d05cd0>

>>>t.__sizeof__()

48

>>>l.__sizeof__()

168

Словарь

>>>d = {i : i+i for i in range(7)}

>>>d

{0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12}

Множество

>>>s = {i for i in range(10)}

>>>s

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Генераторы особенно удобно использовать со встроенными функциями,

такими как sum(), min(), max():

# подсчитаем максимальную длину строки в файле

>>>max(len(line) for line in open('text.txt') if line.strip())

2.2.Практические задания

1.Напишете программу с использованием 5 типов данных.

2.Выведете на экран текущий тип последней переменной.

17

3. Сложите два числа с плавающей запятой и преобразуйте результат в целочисленный.

Вопросы для самопроверки

1.Какие вы знаете типы данных Python?

2.Что такое кортежи в Python?

3.Что такое методы, изменяющие множества?

4.Как работают Списки в Python?

5.Как работают Словари в Python?

3. ФУНКЦИИ

Когда мы говорим о функции, то имеем в виду фрагмент программного кода, который имеет название, и который по этому названию мы можем вызвать любом (или практически любом) месте программы. Функции - очень полезный и эффективный инструмент программирования, поскольку позволяет значительно сократить объем программного кода, сделать его понят нее и эффективнее. Короче говоря, без функций писать эффективные про граммы практически нереально. Поэтому с функциями нужно быть на "ты", особенно если речь идет о программировании в Python.

3.1. Создание функции

Перед тем, как функцию использовать, ее необходимо описать. Что подразумевает описание функции? Как минимум, это тот программный код , который следует выполнять при вызове функции , и, разумеется , название функции. Также функции при выполнении могут понадобиться некоторые пара метры, которые передаются функции при вызове и без которых выполнение функции невозможно. Эти параметры мы будем называть аргументами функции.

И так, для описания функции в Python необходимо:

•указать (задать) имя функции;

•описать аргументы функции;

•описать программный код функции.

Описание функции начинается с ключевого слова def. После него указывают название функции (это должен быть уникальный идентификатор, желательно со смысловой нагрузкой, состоящий из латинских букв, можно также цифр и символа подчеркивания – но с цифры имя функции начинаться не

18

может). Затем перечисляются аргументы функции. Для аргументов про сто указываются названия. Тип аргументов не указывается. Аргументы перечисляются после имени функции в круглых скобках. Если аргументов не сколько, они разделяются запятыми. Даже если аргументов у функции нет (такое тоже бывает), круглые скобки все равно указываются. Заканчивается вся эта конструкция двоеточием, и далее с новой строки следует блок команд, которые собственно и определяют программный код функции. Весь шаблон объявления функции выглядит следующим образом (жирным шрифтом выделены ключевые элементы):

def имя_ функции (аргументы): · команды

То есть все достаточно просто и прозрачно.

Функция может возвращать результат, а может не возвращать результат (в последнем случае имело бы смысл говорить о процедуре - но в Python все называется одним словом функция). Если функция не возвращает результат, то ее можно рассматривать как некоторую последовательность команд, которые выполняются в том месте и в то время, что и вызов функции. Если функция возвращает результат (а это может быть значение практически любого типа), то инструкцию вызова функции можно использовать в выражениях так, как если бы это была некоторая переменная. В теле функции чтобы определить то значение, которое является результатом функции, обычно используют инструкцию return. Выполнение этой инструкции, во-первых, приводит к завершению выполнения программного кода функции, а во-вторых то значение, которое указано после инструкции return, возвращается функцией в качестве результата.

Далее мы рассмотрим простой пример, в котором объявляется несколько простых функций. После объявления эти функции вызываются в программном коде для выполнения несложных действий. Соответствующий программный код представлен в листинге:

#Функция без аргументов de f your_name ( ) :

#Отображается сообщение рrint ("Добрый день!")

#Запоминается введенный пользователем текст

name=input ("Kaк Вас зовут? ")

#Результат функции return name

#Функция с одним аргументом def say_hel lo (txt):

#Отображается сообщение

print ("Здравствуйте, " , tхt+ " ! ")

# Вызываем функцию и результат записываем в переменную my_name=your_name ( )

19

Источник: https://studfile.net/preview/16565614/