SlideShare una empresa de Scribd logo
1 de 31
Ввод и вывод
Технологии и языки программирования
Юдинцев В. В.
Кафедра теоретической механики
Самарский университет
19 ноября 2016 г.
Содержание
1 Форматированный вывод
2 Ввод
3 Чтение и запись файла
4 Задание
Самарский университет Python: ввод и вывод 2 / 31
Форматированный вывод
Функция print
Функция print выводит информацию в стандартное
устрйоство вывода (sys.stdout)
1 p r i n t ( value , . . . , sep= ’ ’ , end= ’ n ’ )
Все позиционные аргументы воспринимаются функцией
как имена, содержимое которых необходимо напечатать:
1 p r i n t ( 1 , 2 , 3 , ’ Hello ! ’ )
>> 1 2 3 Hello !
Дополнительные параметры передаются именованными
аргументами sep, end, file, ...
Самарский университет Python: ввод и вывод 4 / 31
Функция print
sep – символы-разделители выводимых значений (пробел):
1 p r i n t ( 1 , 2 , 3 , ’ Hello ! ’ , sep= ’ : : ’ )
1 : : 2 : : 3 : : Hello !
end – последний символ (перевод строки):
1 p r i n t ( 1 )
2 p r i n t ( 2 )
1
2
1 p r i n t ( 1 , end= ’ , ’ )
2 p r i n t ( 2 )
1 , 2
Самарский университет Python: ввод и вывод 5 / 31
Метод format
Метод format объекта-строки позволяет выполнять
подстановку значений в строковые константы при помощи
фигурных скобок:
1 from math import sqrt
2 a , b = 2. 0 , 3.0
3 S = sqrt ( a **2+ b * * 2 )
4
5 mes= ”Гипотенуза треугольника с катетами { } и { } равна { } ”
6
7 p r i n t ( mes . format ( a , b , S ) )
Гипотенуза треугольника с катетами 2.0 и 3.0 равна 3.60555127546
Самарский университет Python: ввод и вывод 6 / 31
Метод format: позиция аргумента
В фигурных скобках может быть указан порядковый номер
аргумента функции format:
1 a , b = 10 , 5
2
3 mes= ” { 0 } + { 1 } = { 2 } , но {0} −{1}={3} ”
4
5 p r i n t ( mes . format ( a , b , a+b , a−b ) )
10-5=15, но 10-5=5
Самарский университет Python: ввод и вывод 7 / 31
Метод format: имя аргумента
В фигурных скобках может быть указан именованный аргумент
функции format:
1 a , b = 10 , 5
2 mes= ” { arg1 } + { arg2 } = { res } ”
3
4 p r i n t ( mes . format ( arg1 = a , arg2 = b , res = a + b ) )
10 + 5 = 5
Именованные или позиционные аргументы могут быть
коллекциями, для которых в методе format можно указывать
индекс элемента:
1 a = [ 1 , 3 , 5 , 7 , 9 , 11]
2 p r i n t ( ’ F i r s t : { 0 [ 0 ] } , second : { 0 [ 1 ] } ’ . format ( a ) )
F i r s t : 1 , second : 3
Самарский университет Python: ввод и вывод 8 / 31
Метод format: имя аргумента
Можно смешивать обе записи, но позиционные аргументы
должны быть первыми:
1 a , b = 10 , 5
2 mes= ” { arg1 } + { } = { res } ”
3
4 p r i n t ( mes . format ( b , arg1 = a , res = a + b ) )
Самарский университет Python: ввод и вывод 9 / 31
Спецификация форматирования
После двоеточия можно указать спецификации
форматирования: ширину поля, выравнивание, тип, точность:
Вывод двух целых чисел в поле шириной 10 символов и 5
символов с выравниванием по правому краю и по левому
краю:
1 p r i n t ( ’ {0:10 d } , {1: <5 d } ’ . format (15 ,25) )
15 , 25
Превое число выравнивается по центру, второе – по
правому:
1 p r i n t ( ’ {0:^10 d } , {1: >10d } ’ . format (15 ,25) )
15 , 25
Самарский университет Python: ввод и вывод 10 / 31
Спецификация форматирования
Печать вещественного числа с заданным числом знаков
после запятой:
1 p r i n t ( ’ { 0 : 1 0 . 3 f } , {0: <10.2 f } ’ . format (12.11254)
)
1 12.113 , 12.11
Обязательный вывод знака числа
1 p r i n t ( ’ {0:+10.3 f } ’ . format ( 1 1 . 3 ) )
2 p r i n t ( ’ {0: −10.3 f } ’ . format ( 1 1 . 3 ) )
3 p r i n t ( ’ {0: −10.3 f } ’ . format ( −12.3) )
1 +11.300
2 11.300
3 −12.300
Самарский университет Python: ввод и вывод 11 / 31
Спецификация форматирования
Символ-заполнитель:
1 p r i n t ( ’ { 0 : _ ^10.3 f } ’ . format (12.11254) )
2 p r i n t ( ’ { 0 : _ <10.2 f } ’ . format (12.11254) )
1 __12 .113 __
2 12.11 _____
Самарский университет Python: ввод и вывод 12 / 31
Ввод
Функция input
1 user_name = input ( ’Введите Ваше имя : ’ )
2 p r i n t ( ’Здравствуйте , ’ , user_name )
Функция input возвращает введённое значение в виде
строки
Для преобразования в другие типы, например float,
необходимо использовать функции преобразования:
1 value = f l o a t ( input ( ’Введение значение аргумента : ’ ) )
2 p r i n t ( value )
Самарский университет Python: ввод и вывод 14 / 31
Чтение и запись файла
Открытие файла
Для открытия файла используется функция open:
1 f = open ( ’ d a t a _ f i l e . t x t ’ , ’ r ’ )
Первый аргумент – имя файла
Второй аргумент (одна или две буквы): режим работы с
файлом и его тип
r – чтение
w – запись с заменой содержимого существующего файла
x – создание файла и запись только если файла не
существует
a – добавление данных в файл
r+ – чтение и запись
t – текстовый файл (по умолчанию)
b – двоичный файл
Самарский университет Python: ввод и вывод 16 / 31
Запись в файл: функция write
Запись в текстовый файл:
1 message = ’ Live long and prosper ! ’
2 f = open ( ’ message . t x t ’ , ’ wt ’ )
3 f . write ( message )
4 f . close ( )
Функция write возвращает количество записанных символов.
Самарский университет Python: ввод и вывод 17 / 31
Запись в файл: функция print
Для записи можно использовать функцию print, передав
ссылку на файл в именованном аргументе file:
1 message = ’ Live long and prosper ! ’
2 f = open ( ’ message . t x t ’ , ’ wt ’ )
3 p r i n t ( ’ a ’ , ’ b ’ , ’ c ’ , f i l e = f )
4 f . close ( )
Функция print по умолчанию добавляет пробел после каждого
записанного элемента ('a b c') и заканчивает запись
символом перевода строки.
Самарский университет Python: ввод и вывод 18 / 31
Чтение из файла: функция read
Чтение всех данных из файла:
1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ )
2 data = f . read ( )
3 f . close ( )
Чтение блоками по 100 символов:
1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ )
2 data = ’ ’
3 block_size = 100
4 while True :
5 block = f . read ( block_size )
6 i f not block :
7 break
8 data += block
9 f . close ( )
Самарский университет Python: ввод и вывод 19 / 31
Чтение из файла: функция readline
Для построчного чтения используется метод readline:
1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ )
2 data = ’ ’
3 while True :
4 l i n e = f . readline ( )
5 i f not l i n e :
6 break
7 data += l i n e
8 f . close ( )
Самарский университет Python: ввод и вывод 20 / 31
Чтение из файла: файл как итератор
1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ )
2 data = ’ ’
3 f o r l i n e in f
4 data += l i n e
5 f . close ( )
Самарский университет Python: ввод и вывод 21 / 31
Чтение бинарных данных
1 f = open ( ’ data . obj ’ , ’ rb ’ )
2 bdata = f . read ( )
3 p r i n t ( type ( bdata ) )
4 f . close ( )
< c l a s s ’ bytes ’ >
Самарский университет Python: ввод и вывод 22 / 31
Запись бинарных данных
1 data = bytes ( [ 0 , 0 , 0 , 1 , 2 , 3 ] )
2 f = open ( ’ data . obj ’ , ’wb ’ )
3 f . write ( bdata )
4 f . close ( )
Самарский университет Python: ввод и вывод 23 / 31
Бинарные и текстовые файлы
1 data = bytes ( [ 0 , 1 , 2 , 3 ] )
2 f =open ( ’ dat . bin ’ , ’wb ’ )
3 f . write ( data )
4 f . close ( )
Содержимое файла dat.bin в
шестнадцатеричном формате:
00 01 02 03
Содержимое файла dat.bin в
текстовом формате:
NUL SOH STX ETX
1 data = ’ 0123 ’
2 f =open ( ’ dat . t x t ’ , ’ wt ’ )
3 f . write ( data )
4 f . close ( )
Содержимое файла dat.txt в
шестнадцатеричном формате:
30 31 32 33
Содержимое файла dat.txt в
текстовом формате:
0123
Самарский университет Python: ввод и вывод 24 / 31
Автоматическое закрытие файла
Для автоматического закрытия файла можно использовать
следующий шаблон-блок ( with ... as ... : ):
1 data = ’ 0123 ’
2 with open ( ’ dat . t x t ’ , ’ wt ’ ) as f :
3 f . write ( data )
Самарский университет Python: ввод и вывод 25 / 31
Перемещение по файлу
Открытый файл можно представить в виде ленты, с которой
считываются данные (символы, байты) или на которую
ведётся запись.
Для отслеживания и изменения текущей позиции внутри
файла используется методы tell и seek:
1 f = open ( ’ data . t x t ’ , ’ r t ’ )
2 p r i n t ( f . t e l l ( ) )
0
После открытия файла текущая позиция указывает на
начало файла: 0 байт от начала файла
Самарский университет Python: ввод и вывод 26 / 31
tell и seek
Открытие файла и чтение первых 100 байт:
1 f = open ( ’ data . bin ’ , ’ rb ’ )
2 f . read (100)
3 p r i n t ( f . t e l l ( ) )
100
Текущая указывает на следующий не прочитанный байт
файла: сотый байт от начала
Перемещение указателя в позицию 50 байт от начала:
1 f . seek (5 0)
Самарский университет Python: ввод и вывод 27 / 31
Задание
Чтение текстового файла
1 with open ( ’ ru . t x t ’ , ’ r t ’ , encoding= ” utf −8” ) as f :
2 x = f . read ( )
3 p r i n t ( x )
4 p r i n t ( f . t e l l ( ) )
Файл ru.txt
1 sputnik
Результат
sputnik
7
Файл ru.txt
1 спутник
Результат
спутник
14
Самарский университет Python: ввод и вывод 29 / 31
Транслитерация
Загрузить произвольный файл с текстом на русском языке и
заменить все русские буквы по правилам транслитерации,
сохраняя регистр букв (верхний или нижний).
Правила преобразования должны загружатсья из другого
текстового файла, каждая строка которого содержит
русскую букву и её представление латиницей:
б:b
в:v
г:g
...
ж:zh
Преобразованный вариант необходимо сохранить в
текстовый файл
Самарский университет Python: ввод и вывод 30 / 31
Пример: загрузка словаря
1 def l o a d _ d i c t i o n a r y ( file_name ) :
2 with open ( file_name , ’ r t ’ , encoding= ” utf −8” ) as f :
3 l i n e s = f . read ( ) . s p l i t l i n e s ( )
4 rep = d i c t ( )
5 f o r l i n e in l i n e s :
6 pair = l i n e . s p l i t ( ’ : ’ )
7 rep . update ( { pair [ 0 ] : pair [ 1 ] } )
8 return rep
Самарский университет Python: ввод и вывод 31 / 31

Más contenido relacionado

La actualidad más candente

алгоритмы stl
алгоритмы stlалгоритмы stl
алгоритмы stlmcroitor
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введениеmcroitor
 
Лекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьЛекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьMikhail Kurnosov
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularitiesmcroitor
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовMikhail Kurnosov
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...corehard_by
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.Roman Brovko
 
Лекция 4. Строки, байты, файлы и ввод/вывод.
 Лекция 4. Строки, байты, файлы и ввод/вывод. Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.Roman Brovko
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++mcroitor
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.Roman Brovko
 
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Roman Orlov
 
C++ и базы данных
C++ и базы данныхC++ и базы данных
C++ и базы данныхmcroitor
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.Roman Brovko
 

La actualidad más candente (20)

Python
PythonPython
Python
 
алгоритмы stl
алгоритмы stlалгоритмы stl
алгоритмы stl
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
 
Лекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьЛекция 4: Стек. Очередь
Лекция 4: Стек. Очередь
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Основы MATLAB. Программирование
Основы MATLAB. ПрограммированиеОсновы MATLAB. Программирование
Основы MATLAB. Программирование
 
Урок 6. Чистое лямбда-исчисление.
Урок 6. Чистое лямбда-исчисление. Урок 6. Чистое лямбда-исчисление.
Урок 6. Чистое лямбда-исчисление.
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.
 
Лекция 4. Строки, байты, файлы и ввод/вывод.
 Лекция 4. Строки, байты, файлы и ввод/вывод. Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
 
Основы MATLAB. Лекция 1.
Основы MATLAB. Лекция 1.Основы MATLAB. Лекция 1.
Основы MATLAB. Лекция 1.
 
Алгоритмы сортировки
Алгоритмы сортировкиАлгоритмы сортировки
Алгоритмы сортировки
 
Алгоритмы поиска
Алгоритмы поискаАлгоритмы поиска
Алгоритмы поиска
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.
 
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
 
C++ и базы данных
C++ и базы данныхC++ и базы данных
C++ и базы данных
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
 

Similar a Python: ввод и вывод

встроен функции
встроен функциивстроен функции
встроен функцииLidiKashka
 
оператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данныхоператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данныхЕлена Ключева
 
C++ Базовый. Занятие 12.
C++ Базовый. Занятие 12.C++ Базовый. Занятие 12.
C++ Базовый. Занятие 12.Igor Shkulipa
 
Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)Alex Ott
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Ontico
 
Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2Vladimir Tcherniak
 
Мир Python функционалим с помощью библиотек
Мир Python  функционалим с помощью библиотекМир Python  функционалим с помощью библиотек
Мир Python функционалим с помощью библиотекPyNSK
 
Типы данных
Типы данныхТипы данных
Типы данныхMonsterXX
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода выводаmetaform
 
Лекция 5
Лекция 5Лекция 5
Лекция 5itc73
 
лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)djbelyakk
 

Similar a Python: ввод и вывод (20)

встроен функции
встроен функциивстроен функции
встроен функции
 
file handling in c
file handling in cfile handling in c
file handling in c
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
оператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данныхоператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данных
 
file handling in c++
file handling in c++file handling in c++
file handling in c++
 
C++ Базовый. Занятие 12.
C++ Базовый. Занятие 12.C++ Базовый. Занятие 12.
C++ Базовый. Занятие 12.
 
Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
 
лек7
лек7лек7
лек7
 
лек8
лек8лек8
лек8
 
лек7
лек7лек7
лек7
 
Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2
 
Мир Python функционалим с помощью библиотек
Мир Python  функционалим с помощью библиотекМир Python  функционалим с помощью библиотек
Мир Python функционалим с помощью библиотек
 
Lec 5
Lec 5Lec 5
Lec 5
 
Типы данных
Типы данныхТипы данных
Типы данных
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
 
Лекция 5
Лекция 5Лекция 5
Лекция 5
 
лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)
 

Más de Theoretical mechanics department

Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Theoretical mechanics department
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismTheoretical mechanics department
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherTheoretical mechanics department
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Theoretical mechanics department
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingTheoretical mechanics department
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравненийTheoretical mechanics department
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателяTheoretical mechanics department
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelTheoretical mechanics department
 
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Theoretical mechanics department
 
Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)Theoretical mechanics department
 

Más de Theoretical mechanics department (20)

Космический мусор
Космический мусорКосмический мусор
Космический мусор
 
Модификация механизма Йо-Йо
Модификация механизма Йо-ЙоМодификация механизма Йо-Йо
Модификация механизма Йо-Йо
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754
 
Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanism
 
Deployers for nanosatellites
Deployers for nanosatellitesDeployers for nanosatellites
Deployers for nanosatellites
 
CubeSat separation dynamics
CubeSat separation dynamicsCubeSat separation dynamics
CubeSat separation dynamics
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a Tether
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towing
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
Наноспутники формата кубсат
Наноспутники формата кубсатНаноспутники формата кубсат
Наноспутники формата кубсат
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателя
 
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
 
Метод Кейна
Метод КейнаМетод Кейна
Метод Кейна
 
Метод отдельных тел
Метод отдельных телМетод отдельных тел
Метод отдельных тел
 
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
 
Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)
 

Python: ввод и вывод

  • 1. Ввод и вывод Технологии и языки программирования Юдинцев В. В. Кафедра теоретической механики Самарский университет 19 ноября 2016 г.
  • 2. Содержание 1 Форматированный вывод 2 Ввод 3 Чтение и запись файла 4 Задание Самарский университет Python: ввод и вывод 2 / 31
  • 4. Функция print Функция print выводит информацию в стандартное устрйоство вывода (sys.stdout) 1 p r i n t ( value , . . . , sep= ’ ’ , end= ’ n ’ ) Все позиционные аргументы воспринимаются функцией как имена, содержимое которых необходимо напечатать: 1 p r i n t ( 1 , 2 , 3 , ’ Hello ! ’ ) >> 1 2 3 Hello ! Дополнительные параметры передаются именованными аргументами sep, end, file, ... Самарский университет Python: ввод и вывод 4 / 31
  • 5. Функция print sep – символы-разделители выводимых значений (пробел): 1 p r i n t ( 1 , 2 , 3 , ’ Hello ! ’ , sep= ’ : : ’ ) 1 : : 2 : : 3 : : Hello ! end – последний символ (перевод строки): 1 p r i n t ( 1 ) 2 p r i n t ( 2 ) 1 2 1 p r i n t ( 1 , end= ’ , ’ ) 2 p r i n t ( 2 ) 1 , 2 Самарский университет Python: ввод и вывод 5 / 31
  • 6. Метод format Метод format объекта-строки позволяет выполнять подстановку значений в строковые константы при помощи фигурных скобок: 1 from math import sqrt 2 a , b = 2. 0 , 3.0 3 S = sqrt ( a **2+ b * * 2 ) 4 5 mes= ”Гипотенуза треугольника с катетами { } и { } равна { } ” 6 7 p r i n t ( mes . format ( a , b , S ) ) Гипотенуза треугольника с катетами 2.0 и 3.0 равна 3.60555127546 Самарский университет Python: ввод и вывод 6 / 31
  • 7. Метод format: позиция аргумента В фигурных скобках может быть указан порядковый номер аргумента функции format: 1 a , b = 10 , 5 2 3 mes= ” { 0 } + { 1 } = { 2 } , но {0} −{1}={3} ” 4 5 p r i n t ( mes . format ( a , b , a+b , a−b ) ) 10-5=15, но 10-5=5 Самарский университет Python: ввод и вывод 7 / 31
  • 8. Метод format: имя аргумента В фигурных скобках может быть указан именованный аргумент функции format: 1 a , b = 10 , 5 2 mes= ” { arg1 } + { arg2 } = { res } ” 3 4 p r i n t ( mes . format ( arg1 = a , arg2 = b , res = a + b ) ) 10 + 5 = 5 Именованные или позиционные аргументы могут быть коллекциями, для которых в методе format можно указывать индекс элемента: 1 a = [ 1 , 3 , 5 , 7 , 9 , 11] 2 p r i n t ( ’ F i r s t : { 0 [ 0 ] } , second : { 0 [ 1 ] } ’ . format ( a ) ) F i r s t : 1 , second : 3 Самарский университет Python: ввод и вывод 8 / 31
  • 9. Метод format: имя аргумента Можно смешивать обе записи, но позиционные аргументы должны быть первыми: 1 a , b = 10 , 5 2 mes= ” { arg1 } + { } = { res } ” 3 4 p r i n t ( mes . format ( b , arg1 = a , res = a + b ) ) Самарский университет Python: ввод и вывод 9 / 31
  • 10. Спецификация форматирования После двоеточия можно указать спецификации форматирования: ширину поля, выравнивание, тип, точность: Вывод двух целых чисел в поле шириной 10 символов и 5 символов с выравниванием по правому краю и по левому краю: 1 p r i n t ( ’ {0:10 d } , {1: <5 d } ’ . format (15 ,25) ) 15 , 25 Превое число выравнивается по центру, второе – по правому: 1 p r i n t ( ’ {0:^10 d } , {1: >10d } ’ . format (15 ,25) ) 15 , 25 Самарский университет Python: ввод и вывод 10 / 31
  • 11. Спецификация форматирования Печать вещественного числа с заданным числом знаков после запятой: 1 p r i n t ( ’ { 0 : 1 0 . 3 f } , {0: <10.2 f } ’ . format (12.11254) ) 1 12.113 , 12.11 Обязательный вывод знака числа 1 p r i n t ( ’ {0:+10.3 f } ’ . format ( 1 1 . 3 ) ) 2 p r i n t ( ’ {0: −10.3 f } ’ . format ( 1 1 . 3 ) ) 3 p r i n t ( ’ {0: −10.3 f } ’ . format ( −12.3) ) 1 +11.300 2 11.300 3 −12.300 Самарский университет Python: ввод и вывод 11 / 31
  • 12. Спецификация форматирования Символ-заполнитель: 1 p r i n t ( ’ { 0 : _ ^10.3 f } ’ . format (12.11254) ) 2 p r i n t ( ’ { 0 : _ <10.2 f } ’ . format (12.11254) ) 1 __12 .113 __ 2 12.11 _____ Самарский университет Python: ввод и вывод 12 / 31
  • 14. Функция input 1 user_name = input ( ’Введите Ваше имя : ’ ) 2 p r i n t ( ’Здравствуйте , ’ , user_name ) Функция input возвращает введённое значение в виде строки Для преобразования в другие типы, например float, необходимо использовать функции преобразования: 1 value = f l o a t ( input ( ’Введение значение аргумента : ’ ) ) 2 p r i n t ( value ) Самарский университет Python: ввод и вывод 14 / 31
  • 16. Открытие файла Для открытия файла используется функция open: 1 f = open ( ’ d a t a _ f i l e . t x t ’ , ’ r ’ ) Первый аргумент – имя файла Второй аргумент (одна или две буквы): режим работы с файлом и его тип r – чтение w – запись с заменой содержимого существующего файла x – создание файла и запись только если файла не существует a – добавление данных в файл r+ – чтение и запись t – текстовый файл (по умолчанию) b – двоичный файл Самарский университет Python: ввод и вывод 16 / 31
  • 17. Запись в файл: функция write Запись в текстовый файл: 1 message = ’ Live long and prosper ! ’ 2 f = open ( ’ message . t x t ’ , ’ wt ’ ) 3 f . write ( message ) 4 f . close ( ) Функция write возвращает количество записанных символов. Самарский университет Python: ввод и вывод 17 / 31
  • 18. Запись в файл: функция print Для записи можно использовать функцию print, передав ссылку на файл в именованном аргументе file: 1 message = ’ Live long and prosper ! ’ 2 f = open ( ’ message . t x t ’ , ’ wt ’ ) 3 p r i n t ( ’ a ’ , ’ b ’ , ’ c ’ , f i l e = f ) 4 f . close ( ) Функция print по умолчанию добавляет пробел после каждого записанного элемента ('a b c') и заканчивает запись символом перевода строки. Самарский университет Python: ввод и вывод 18 / 31
  • 19. Чтение из файла: функция read Чтение всех данных из файла: 1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ ) 2 data = f . read ( ) 3 f . close ( ) Чтение блоками по 100 символов: 1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ ) 2 data = ’ ’ 3 block_size = 100 4 while True : 5 block = f . read ( block_size ) 6 i f not block : 7 break 8 data += block 9 f . close ( ) Самарский университет Python: ввод и вывод 19 / 31
  • 20. Чтение из файла: функция readline Для построчного чтения используется метод readline: 1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ ) 2 data = ’ ’ 3 while True : 4 l i n e = f . readline ( ) 5 i f not l i n e : 6 break 7 data += l i n e 8 f . close ( ) Самарский университет Python: ввод и вывод 20 / 31
  • 21. Чтение из файла: файл как итератор 1 f = open ( ’ r e s u l t s . t x t ’ , ’ r t ’ ) 2 data = ’ ’ 3 f o r l i n e in f 4 data += l i n e 5 f . close ( ) Самарский университет Python: ввод и вывод 21 / 31
  • 22. Чтение бинарных данных 1 f = open ( ’ data . obj ’ , ’ rb ’ ) 2 bdata = f . read ( ) 3 p r i n t ( type ( bdata ) ) 4 f . close ( ) < c l a s s ’ bytes ’ > Самарский университет Python: ввод и вывод 22 / 31
  • 23. Запись бинарных данных 1 data = bytes ( [ 0 , 0 , 0 , 1 , 2 , 3 ] ) 2 f = open ( ’ data . obj ’ , ’wb ’ ) 3 f . write ( bdata ) 4 f . close ( ) Самарский университет Python: ввод и вывод 23 / 31
  • 24. Бинарные и текстовые файлы 1 data = bytes ( [ 0 , 1 , 2 , 3 ] ) 2 f =open ( ’ dat . bin ’ , ’wb ’ ) 3 f . write ( data ) 4 f . close ( ) Содержимое файла dat.bin в шестнадцатеричном формате: 00 01 02 03 Содержимое файла dat.bin в текстовом формате: NUL SOH STX ETX 1 data = ’ 0123 ’ 2 f =open ( ’ dat . t x t ’ , ’ wt ’ ) 3 f . write ( data ) 4 f . close ( ) Содержимое файла dat.txt в шестнадцатеричном формате: 30 31 32 33 Содержимое файла dat.txt в текстовом формате: 0123 Самарский университет Python: ввод и вывод 24 / 31
  • 25. Автоматическое закрытие файла Для автоматического закрытия файла можно использовать следующий шаблон-блок ( with ... as ... : ): 1 data = ’ 0123 ’ 2 with open ( ’ dat . t x t ’ , ’ wt ’ ) as f : 3 f . write ( data ) Самарский университет Python: ввод и вывод 25 / 31
  • 26. Перемещение по файлу Открытый файл можно представить в виде ленты, с которой считываются данные (символы, байты) или на которую ведётся запись. Для отслеживания и изменения текущей позиции внутри файла используется методы tell и seek: 1 f = open ( ’ data . t x t ’ , ’ r t ’ ) 2 p r i n t ( f . t e l l ( ) ) 0 После открытия файла текущая позиция указывает на начало файла: 0 байт от начала файла Самарский университет Python: ввод и вывод 26 / 31
  • 27. tell и seek Открытие файла и чтение первых 100 байт: 1 f = open ( ’ data . bin ’ , ’ rb ’ ) 2 f . read (100) 3 p r i n t ( f . t e l l ( ) ) 100 Текущая указывает на следующий не прочитанный байт файла: сотый байт от начала Перемещение указателя в позицию 50 байт от начала: 1 f . seek (5 0) Самарский университет Python: ввод и вывод 27 / 31
  • 29. Чтение текстового файла 1 with open ( ’ ru . t x t ’ , ’ r t ’ , encoding= ” utf −8” ) as f : 2 x = f . read ( ) 3 p r i n t ( x ) 4 p r i n t ( f . t e l l ( ) ) Файл ru.txt 1 sputnik Результат sputnik 7 Файл ru.txt 1 спутник Результат спутник 14 Самарский университет Python: ввод и вывод 29 / 31
  • 30. Транслитерация Загрузить произвольный файл с текстом на русском языке и заменить все русские буквы по правилам транслитерации, сохраняя регистр букв (верхний или нижний). Правила преобразования должны загружатсья из другого текстового файла, каждая строка которого содержит русскую букву и её представление латиницей: б:b в:v г:g ... ж:zh Преобразованный вариант необходимо сохранить в текстовый файл Самарский университет Python: ввод и вывод 30 / 31
  • 31. Пример: загрузка словаря 1 def l o a d _ d i c t i o n a r y ( file_name ) : 2 with open ( file_name , ’ r t ’ , encoding= ” utf −8” ) as f : 3 l i n e s = f . read ( ) . s p l i t l i n e s ( ) 4 rep = d i c t ( ) 5 f o r l i n e in l i n e s : 6 pair = l i n e . s p l i t ( ’ : ’ ) 7 rep . update ( { pair [ 0 ] : pair [ 1 ] } ) 8 return rep Самарский университет Python: ввод и вывод 31 / 31