1 / 30

Доброгодин Евгений Санкт-Петербургский Государственный Университет

Доброгодин Евгений Санкт-Петербургский Государственный Университет Математико – Механический Факультет 222 группа. ВВОД / ВЫВОД 4.10.2010. Форматированный ввод / вывод.

Download Presentation

Доброгодин Евгений Санкт-Петербургский Государственный Университет

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Доброгодин Евгений Санкт-Петербургский Государственный Университет Математико – Механический Факультет 222 группа. ВВОД/ВЫВОД 4.10.2010

  2. Форматированный ввод/вывод • Форматированный ввод/вывод – совокупность операций, обеспечивающая ввод/вывод переменных с применением определенного формата ввода/вывода.

  3. Способы форматированного ввода/вывода 1) print– печатает переменные и кортежи . (вывод в удобном формате) 2)str()– преобразовывает значение любого типа в строку. (для вывода аргументов инструкцией print) 3)repr()- для получения строкового представления. ( для вывода значений выражений в интерактивном режиме)

  4. Примеры: 1) s = ‘hello\nworld’ print s #hello #world 2) s = ‘hello\nworld’ print repr(s) #’hello\nworld’ 4) y = 40*40 l = [x,y] printrepr(l) #[0.00…01, 1600] 3) x = 0.1 printrepr(x) #0.0000000000000001

  5. О выводе. • В Python используется динамическая типизация: название переменной не несет данных о типе. • Можно узнать тип с помощью функции type().

  6. Пример: s = ‘hello’ l = [1,2] t = (1,’two’) print type(s), type(l), type(t), #<type ‘str’><type ‘list’><type ‘tuple’>

  7. Ввод. • Данные можно задавать вручную в любом месте и использовать их в дальнейшем. • Для ввода с клавиатуры используется функция raw_input(). Она выводит на экран приглашение и ожидает ввода пользователя.

  8. Пример: x = raw_input(‘What is your name?’) print ‘Your name is’, x a = abs(int(raw_input(‘Insert value a:’) print ‘Absolute value a =‘, a

  9. Еще о выводе: • Функции модуля string: string.rjust(), string.ljust(), string.center() • Эти функции принимают 2 параметра: • Сама строка. • Количество символов зарезервированных под строку. Если они длиннее, то выведется вся, чтобы обрезать string.rjust(s,n)[0:n].

  10. Пример: 1) import string for 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 64 25 125

  11. Пример: 2) import string s = ‘Beautiful is better than ugly’ print string.ljust(s,len(s))[3:6] #uti

  12. Еще о выводе: • Для этой же цели можно использовать printсо строкой формата. Пример: for x in xrange(1,5): print‘%-2d %-3d’ % (x*x, x*x*x) #тоже самое что было, только выравнивание по левому краю.

  13. Строка форматирования: • Число после ‘%’ определяет число символов для выравнивания, а спецификатор обозначает тип: • %d – целое число; • %f – число с точкой; • %s – строка; • %c –символ; • %e – число с мантиссой.

  14. Функция zfill: string.zfill(строка, ширина_поля) • Пример: import string printstring.zfill(‘12’,5) #’00012’ print string.zfill(‘-3.14’,7) #’-003.14’

  15. Аналог zfill: • %ширина_поля, число_знаков_после_точки • Пример: import math print‘ Пи примерно равно%5.3f’ % math.pi #Пи примерно равно 3.142

  16. Еще о выводе: • Если в строке нужно вывести несколько значений, в качестве правого операнда используется кортеж: Пример: table = {‘Msk’ : 600, ‘SPb’ : 400, ‘Vologda’ : 100} forcity,distancein table.items(): print‘%-10s == >%10d’ % (city,distance) #SPb == > 400 #Msk == > 600 #Vologda == > 100

  17. И снова о выводе: • Можно передавать аргументы функции 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

  18. Операции с файлами: • open(‘имя’,’режим’)– открывает файловый объект для работы. 2 параметра: • Строка, содержащая путь к файлу. • Несколько символов, обозначающих режим работы с файлом.

  19. Режимы работы с файлами: w - для записи (если уже существует, то содержимое исчезает); r – для чтения; a – для добавления (сохр. то что было и добавляется в конец); r+ - для записи/чтения (содержимое сохр); w+ - для записи/чтения (содержимое исчезает); rb – открытие двоичного файла для чтения; wb – открытие двоичного файла для записи.

  20. Операции с файлами: • read(n) – чтение из файла, если аргумент отсутствует, то считывается все, в ином случае не более чем n байт. • readline() – считывает строку файла. Возвращаемая строка всегда заканчивается символом конца строки \n, за исключением последней строки. Пустая строка представлена как ’\n’

  21. Операции с файлами: • readlines() – считывает все содержимое файла и возвращает список строк. • write(s) – записывает содержимое строки s в файл.

  22. Операции с файлами: • seek(offset[,from_what]) – перемещает указатель текущего положения путем прибавления offset к точке отсчета. • Точка отсчета выбирается в зависимости от аргумента from_what: 0 – начало(по умолчанию), 1 – текущее положение, 2 – конец.

  23. Операции с файлами: • tell() – возвращает текущую позицию. • сlose() – закрытие файла. При попытке использовать закрытый файл для операций чтения/записи генерируется исключение ValueError: I/O operation on closed file.

  24. Примеры: 1) f = open(‘C://input.txt’,’r’) printf.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. printf.readlines() # ['This is the first line of the file.\n', 'Second line of the file.'] f.close()

  25. Примеры: 3) f = open(‘C://input.txt’,’r+’) f.write(‘0123456789abcdef’) f.seek(5) f.seek(-2,1) printf.read(1) f.close() #3

  26. Модуль pickle: • Сохранение в файл любых объектов (списки, кортежи, словари) доступно с помощью модуля pickle. Сохранение объекта х в файловый объект f: pickle.dump(x,f) Восстановление объекта из файла: x = pickle.load(f)

  27. Случайный и Последовательный Доступ: • Случайный: возможность доступа к любому элементу последовательности за одинаковое время. Время доступа к элементу О(1). • Последовательный: доступ в определенной последовательности. Время доступа к элементу О(k), где k номер эл-та. • Пример: диск и кассета (выбор трека и перемотка).

  28. Случайный и Последовательный Доступ:

  29. Содержание: • Форматированный Ввод/Вывод. • Чтение и Запись Файлов. • Методы Объектов-файлов. • Модуль Pickle. • Random and Sequential Access.

  30. Используемая литература: • Г.Россум «Язык программирования Python» • Wikipedia.org

More Related