Тема занятия: работа с файлами и форматирование вывода
- Разбор задач
- Форматирование вывода (new style):
Простой пример "from {} to {}".format(1,10)
Позиционные метки: "last {1}, first {0} (again, last {0}".format(10,20)
- Форматирование в знакоместах, выравнивание, заполнение заполнителем
- …
- Файлы:
Принцип: файл — текстовый поток байтов с позицией чтения/записи
open()/close()
r/w/a
- Ввод:
.read()/.readline()/readlines()
for s in файл: (бывший xreadlines()
- Вывод:
print >> файл, что-то
.write()/.writeline*()
- Позиционирование
Домашнее задание
Прочитать
про форматирование строк в учебнике (inputoutput.html)
про форматирование строк в документации
про работу с файлами в учебнике (inputoutput.html)
(не для EJudge): прочитать с диска файл input.txt и записать строки этого файла в обратном порядке в файл output.txt
(не для EJudge): ввести имя файла и вывести байты этого файла с 16-й по 32-й в шестнадцатеричном виде (при помощи функции ord(символ))
Ввести W — ширину экрана, вывести таблицу умножения от 1x1 до 12x12 в несколько колонок (сообразно ширине). При этом:
- Минимальное расстояние между колонками равно в точности одному пробелу
- Все «*» и «=» стоят друг под другом
- Сомножители выравнены по символу «*», а произведение — по «=»
- Все колонки одинаковой ширины (даже если в колонке для этого появляются дополнительные пробелы в сомножителях и произведении)
Порядок следования колонок: в ширину, сверху вниз; общая ширина — не больше W
64
1*1 =1 2*1 =2 3*1 =3 4*1 =4 5*1 =5 6*1 =6 1*2 =2 2*2 =4 3*2 =6 4*2 =8 5*2 =10 6*2 =12 1*3 =3 2*3 =6 3*3 =9 4*3 =12 5*3 =15 6*3 =18 1*4 =4 2*4 =8 3*4 =12 4*4 =16 5*4 =20 6*4 =24 1*5 =5 2*5 =10 3*5 =15 4*5 =20 5*5 =25 6*5 =30 1*6 =6 2*6 =12 3*6 =18 4*6 =24 5*6 =30 6*6 =36 1*7 =7 2*7 =14 3*7 =21 4*7 =28 5*7 =35 6*7 =42 1*8 =8 2*8 =16 3*8 =24 4*8 =32 5*8 =40 6*8 =48 1*9 =9 2*9 =18 3*9 =27 4*9 =36 5*9 =45 6*9 =54 1*10=10 2*10=20 3*10=30 4*10=40 5*10=50 6*10=60 1*11=11 2*11=22 3*11=33 4*11=44 5*11=55 6*11=66 1*12=12 2*12=24 3*12=36 4*12=48 5*12=60 6*12=72 7*1 =7 8*1 =8 9*1 =9 10*1 =10 11*1 =11 12*1 =12 7*2 =14 8*2 =16 9*2 =18 10*2 =20 11*2 =22 12*2 =24 7*3 =21 8*3 =24 9*3 =27 10*3 =30 11*3 =33 12*3 =36 7*4 =28 8*4 =32 9*4 =36 10*4 =40 11*4 =44 12*4 =48 7*5 =35 8*5 =40 9*5 =45 10*5 =50 11*5 =55 12*5 =60 7*6 =42 8*6 =48 9*6 =54 10*6 =60 11*6 =66 12*6 =72 7*7 =49 8*7 =56 9*7 =63 10*7 =70 11*7 =77 12*7 =84 7*8 =56 8*8 =64 9*8 =72 10*8 =80 11*8 =88 12*8 =96 7*9 =63 8*9 =72 9*9 =81 10*9 =90 11*9 =99 12*9 =108 7*10=70 8*10=80 9*10=90 10*10=100 11*10=110 12*10=120 7*11=77 8*11=88 9*11=99 10*11=110 11*11=121 12*11=132 7*12=84 8*12=96 9*12=108 10*12=120 11*12=132 12*12=144
Условные обозначения
— тема по Linux
— тема повышенной сложности
— теоретическое задание
— тема для самостоятельного изучения