Операції введення-виведення, робота з файлами Python |
Написав Invader | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Понеділок, 12 серпня 2013 12:54 Переглядів: 13216
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python ua: Операції введення-виведенняВступВ майбутньому можуть виникнути ситуації, коли твоя програма повинна буде взаємодіяти з користувачем. Наприклад, тобі знадобиться отримати якісь дані від користувача і щось вивести у відповідь. Цього можна досягти використавши функції input() і print() відповідно. Для друку на екран можна також скористатися різноманітними методами класу str. Наприклад, можна використати функцію rjust для виведення рядку який вирівнюється по правому краю екрана. Інший поширений тип операцій введення-виведення це робота з файлами. Здатність створювати, читати і записувати в файли неодмінна риса багатьох програм.
Обробка даних від користувача
Вивід:
Як це працює: Ми використали можливість створювати зрізи для того щоб змінити порядок слідування елементів в рядку на протилежний. Ми вже бачили як можна створювати зрізи послідовностей використовуючи код на зразок seq[a:b]. Крім початкової і кінецої позиції зрізу можна також передати функції 3-й параметр який вказує на крок (к-ть елементів які функція занесе до зрізу за один раз) з яким буде створено зріз. Типово, крок дорівнює одиниці. Саме тому функція повертає нерозривну, безперервну частину тексту. Якщо значення кроку від’ємне число, то зріз послідовністі буде починатися з кінця. Функція input() приймає значення рядкового типу і виводить його на екран. Потім вона чекає поки користувач не натисне клавішу Enter. Як тільки користувач натиснув Enter, функція поверне в програму те що він ввів. Домашня робота: Перевірка на те чи слово є паліндромом повинна ігнорувати знаки пунктуації, пробіли, і регістр символів. Наприклад, "Rise to vote, sir." також паліндром, але програма так не вважає. Ти можеш вдосконалити програму так щоб вона розпізнала що це паліндром?
ФайлиДля роботи з файлами потрібно створити об’єкт класу file і скористатися методами read, write, readline для читання або запису. Здатність читати файл або записувати в нього дані залежить від режиму який ти вказав при відритті файлу. Після завершення роботи з файлом слід викликати для нього метод close для того щоб вказати Python що ми його вже не використовуємо. Приклад: Вивід:
Як це працює: Спершу ми відкрили файл скориставшись функцією open, Як можна бачити з коду 1-м аргументом для цієї функції слугує ім’я файлу, 2-й аргумент — тип доступу або режим. Існує декілька режимів — читання ('r'), запис ('w'), додавання('a'). Також, можна вказати з яким типом файлу ми маємо справу. Бінарний файл ('b') чи текстовий ('t'). Насправді існує більше режимів і ти можеш дізнатися про них прочитавши довідку — help(open). Типово, функція open вважає що файл відкрито для читання і він є текстовим (це якщо режим не вказано). В цьому прикладі ми відкрили файл для запису в як текстовий і далі використали метод write об’єкту типу file для запису. В кінці закрили файловий дескриптор. Далі файл було відкрито знову, але цього разу для читання. Тип доступу ми не вказали, бо режим 'r' — це типовий режим для функції. Ми прочитали кожен рядок файлу скориставшись методом readline в циклі. Цей метод повертає рядок включно з символом нового рядка в кінці. Коли метод повертає порожній рядок, можна вважати що кінець файлу досягнуто. В такому разі відбувається вихід з циклу (break). Типово, функція print() автоматично виводить на екран також і символ нового рядку, Але, сокільки, рядки прочитані з файлу вже містять такий символ, ми вказали функції не додавати його до виводу передавши їй порожній рядок як 2-й аргумент — end=''. В кінці ми закрили файл. Тепер перевір вміст файлу poem.txt для того щоб переконатися чи там справді є текст.
PicklePython постачається з спеціальним модулем який називається Pickle. Він дозволяє вам зберегти будь-який Python-об’єкт у файлі і потім, отримати його назад. Приклад: Як це працює: Для того щоб зберегти об’єкт в файл спершу його потрібно відкрити як бінарний для запису і потім, викликати функцію dump з модуля pickle. Потім ми отримали збережений об’єкт назад скориставшись функцією load з модулю pickle.
ПідсумокМи обговорили роботу з файлами, функцію open а також функцію input і те як можна працювати з данними введеними користувачем. Далі ми поговоримо про концепцію винятків.
( 11 Проголосувало )
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |