![Page 1: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/1.jpg)
Доброгодин ЕвгенийСанкт-Петербургский Государственный УниверситетМатематико – Механический Факультет222 группа.
ВВОД/ВЫВОД4.10.2010
![Page 2: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/2.jpg)
Форматированный ввод/вывод
• Форматированный ввод/вывод – совокупность операций, обеспечивающая ввод/вывод переменных с применением определенного формата ввода/вывода.
![Page 3: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/3.jpg)
Способы форматированного ввода/вывода
1) print – печатает переменные и кортежи .(вывод в удобном формате)
2) str() – преобразовывает значение любого типа в строку.
(для вывода аргументов инструкцией print)3)repr() - для получения строкового представления.
( для вывода значений выражений в интерактивном режиме)
![Page 4: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/4.jpg)
Примеры:
1)
s = ‘hello\nworld’
print s
#hello
#world
2)
s = ‘hello\nworld’
print repr(s)
#’hello\nworld’
3)
x = 0.1
print repr(x)
#0.0000000000000001
4)
y = 40*40
l = [x,y]
print repr(l)
#[0.00…01, 1600]
![Page 5: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/5.jpg)
О выводе.
• В Python используется динамическая типизация: название переменной не несет данных о типе.
• Можно узнать тип с помощью функции type().
![Page 6: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/6.jpg)
Пример:
s = ‘hello’ l = [1,2] t = (1,’two’)print type(s), type(l), type(t), #<type ‘str’> <type ‘list’> <type ‘tuple’>
![Page 7: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/7.jpg)
Ввод.
• Данные можно задавать вручную в любом месте и использовать их в дальнейшем.
• Для ввода с клавиатуры используется функция raw_input(). Она выводит на экран приглашение и ожидает ввода пользователя.
![Page 8: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/8.jpg)
Пример:
x = raw_input(‘What is your name?’)print ‘Your name is’, xa = abs(int(raw_input(‘Insert value a:’)print ‘Absolute value a =‘, a
![Page 9: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/9.jpg)
Еще о выводе:
• Функции модуля string:string.rjust(), string.ljust(), string.center()• Эти функции принимают 2 параметра:- Сама строка.- Количество символов зарезервированных
под строку. Если они длиннее, то выведется вся, чтобы обрезать string.rjust(s,n)[0:n].
![Page 10: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/10.jpg)
Пример:1)import stringfor x in xrange (1,5):
print string.rjust(str(x*x),2), string.rjust(str(x*x*x), 3)
1 1 4 8 9 27 16 6425 125
![Page 11: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/11.jpg)
Пример:
2)import strings = ‘Beautiful is better than ugly’print string.ljust(s,len(s))[3:6]#uti
![Page 12: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/12.jpg)
Еще о выводе:
• Для этой же цели можно использовать print со строкой формата.
Пример:for x in xrange (1,5):
print ‘%-2d %-3d’ % (x*x, x*x*x)#тоже самое что было, только выравнивание
по левому краю.
![Page 13: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/13.jpg)
Строка форматирования:
• Число после ‘%’ определяет число символов для выравнивания, а спецификатор обозначает тип:
1) %d – целое число;2) %f – число с точкой;3) %s – строка;4) %c –символ;5) %e – число с мантиссой.
![Page 14: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/14.jpg)
Функция zfill:
string.zfill(строка, ширина_поля)• Пример:import stringprint string.zfill(‘12’,5)#’00012’ print string.zfill(‘-3.14’,7)#’-003.14’
![Page 15: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/15.jpg)
Аналог zfill:
• %ширина_поля, число_знаков_после_точки
• Пример:import mathprint ‘ Пи примерно равно %5.3f’ % math.pi#Пи примерно равно 3.142
![Page 16: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/16.jpg)
Еще о выводе:• Если в строке нужно вывести несколько
значений, в качестве правого операнда используется кортеж:
Пример:table = {‘Msk’ : 600, ‘SPb’ : 400, ‘Vologda’ : 100}for city,distance in table.items():print ‘%-10s == >%10d’ % (city,distance)#SPb == > 400#Msk == > 600#Vologda == > 100
![Page 17: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/17.jpg)
И снова о выводе:
• Можно передавать аргументы функции print не по порядку, а по именам переменных.
Пример:table = {‘Msk’ : 600, ‘SPb’ : 400, ‘Vologda’ : 100}print ‘Msk:%(Msk)d; Vologda:%(Vologda)d; SPb:%
(SPb)d’ % table#Msk:600; Vologda:100; SPb:400
![Page 18: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/18.jpg)
Операции с файлами:
• open(‘имя’,’режим’) – открывает файловый объект для работы. 2 параметра:
1) Строка, содержащая путь к файлу.2) Несколько символов, обозначающих
режим работы с файлом.
![Page 19: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/19.jpg)
Режимы работы с файлами:
w - для записи (если уже существует, то содержимое исчезает);
r – для чтения;a – для добавления (сохр. то что было и добавляется
в конец);r+ - для записи/чтения (содержимое сохр);w+ - для записи/чтения (содержимое исчезает);rb – открытие двоичного файла для чтения;wb – открытие двоичного файла для записи.
![Page 20: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/20.jpg)
Операции с файлами:
• read(n) – чтение из файла, если аргумент отсутствует, то считывается все, в ином случае не более чем n байт.
• readline() – считывает строку файла. Возвращаемая строка всегда заканчивается символом конца строки \n, за исключением последней строки. Пустая строка представлена как ’\n’
![Page 21: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/21.jpg)
Операции с файлами:
• readlines() – считывает все содержимое файла и возвращает список строк.
• write(s) – записывает содержимое строки s в файл.
![Page 22: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/22.jpg)
Операции с файлами:
• seek(offset[,from_what]) – перемещает указатель текущего положения путем прибавления offset к точке отсчета.
• Точка отсчета выбирается в зависимости от аргумента from_what:
0 – начало(по умолчанию), 1 – текущее положение, 2 – конец.
![Page 23: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/23.jpg)
Операции с файлами:
• tell() – возвращает текущую позицию.• сlose() – закрытие файла. При попытке
использовать закрытый файл для операций чтения/записи генерируется исключение ValueError: I/O operation on closed file.
![Page 24: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/24.jpg)
Примеры:1)f = open(‘C://input.txt’,’r’)print f.read()# This is the first line of the file.#Second line of the file.f.close()f = open('D://tmp/workfile.txt','r')for line in f:
print line#This is the first line of the file.#Second line of the file.print f.readlines() # ['This is the first line of the file.\n', 'Second line of the file.']f.close()
![Page 25: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/25.jpg)
Примеры:
3) f = open(‘C://input.txt’,’r+’) f.write(‘0123456789abcdef’) f.seek(5) f.seek(-2,1) print f.read(1) f.close()#3
![Page 26: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/26.jpg)
Модуль pickle:
• Сохранение в файл любых объектов (списки, кортежи, словари) доступно с помощью модуля pickle.
Сохранение объекта х в файловый объект f:pickle.dump(x,f)Восстановление объекта из файла:x = pickle.load(f)
![Page 27: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/27.jpg)
Случайный и Последовательный Доступ:
• Случайный: возможность доступа к любому элементу последовательности за одинаковое время. Время доступа к элементу О(1).
• Последовательный: доступ в определенной последовательности. Время доступа к элементу О(k), где k номер эл-та.
• Пример: диск и кассета (выбор трека и перемотка).
![Page 28: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/28.jpg)
Случайный и Последовательный Доступ:
![Page 29: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/29.jpg)
Содержание:
• Форматированный Ввод/Вывод.• Чтение и Запись Файлов.• Методы Объектов-файлов.• Модуль Pickle.• Random and Sequential Access.
![Page 30: Доброгодин Евгений Санкт-Петербургский Государственный Университет](https://reader035.vdocuments.site/reader035/viewer/2022062304/56813167550346895d97dbff/html5/thumbnails/30.jpg)
Используемая литература:
• Г.Россум «Язык программирования Python»• Wikipedia.org