Учим Python. Часть 6. Улучшаем код. Работа с файлами.

sproot

New member
03.11.2018
22
6
3
#1
0.png

Приветствую всех в продолжении статей про обучение программированию на Python. Сегодня речь будет не про решение задач, а про некоторые нюансы, благодаря которым ваш навык программирования выйдет на новый уровень. Во второй части статьи будут приведены команды, с помощью которых осуществляется работа с файлами.

Об уроке

Займёмся изменением кода программы, чтобы он выглядел лучше и был более содержательным. А потом перейдем и к другим "вкусностям".

Запомните

Запомните, вы должны уметь читать все то, что было написано в программах ранее и то, что будет написано потом. Нужно понимать язык, на котором написана программа. Не стоит кричать о том, что вы в совершенстве знаете Python, тем более, что это не так. Продолжайте вникать и более углубленно изучать эту тему.
И вот небольшое задание на проверку совершенства - написанная программа совершенна или нет?
Код:
def t():
    f=input()
    return f
def w():
    g=input()
    return g
f=t()
g=w()
s=f+g
print(s)
Если вам покажется, что нет, то вы будете на 100% правы. Попробуем чуть-чуть поменять команды:
Код:
def oneNum():
    num1 = input()
    return num1

def twoNum():
    num2 = input()
    return num2

num1 = oneNum()
num2 = twoNum()

sumNums = num1 + num2
print(sumNums)
Сейчас программа стала легче читаться, в ней появились стройность и логика. Так что же было плохо в первой программе? Самое главное - это неинформативность названий переменных.

Попробуем выбрать в примерах хорошо и плохо читаемые названия переменных.
myFirstName --- хорошо читаемое
my First Name --- плохо читаемое
my_First_Name --- хорошо читаемое
sumNums --- хорошо читаемое
sn --- плохо читаемое
x - зависит от условий
Отсюда можно сделать вывод, что название переменной должно быть в первую очередь информативным, но в тоже время максимально кратким. При присутствии нескольких слов стоит ввести их через нижнее подчеркивание (_), или написать слитно, но каждое слово писать с заглавной буквы. Переменная не должна начинаться с заглавной буквы, цифры и всяких непонятностей типа #*[email protected]&!$

Предположим, что вами была написана программа, вполне приличная, но выглядящая немного странно
Код:
myPinCode = 6714#пинкод
myBankNumber = 5424#номер счета
dataCreated = 2018#дата создания
Изменим содержание при помощи клавиши TAB:
Код:
myPinCode      = 6714 # пинкод
myBankNumber   = 5424 # номер счета
dataCreated    = 2018 # дата создания
Стало заметно лучше.
Взглянем сюда -
Код:
sumNums = myResult(4, 5)

def myResult(x, y):
    return x + y
И этот код ошибочен из-за того, что функция использовалась до своего объявления.

Функцию стоит объявлять при использовании тогда, когда определенная часть программы многократно повторяется. И это малая часть того, как можно улучшить свою программу.
Кеннет Рейтц - Автостопом по Python
Роберт Мартин - Чистый код
Стив Макконнал - Совершенный код

Исключения.
1.jpg
Исключение - создание определенных условий, в результате чего происходит прерывание выполнения программы из-за невозможности обработки ошибочных данных.
Предлагаю рассмотреть стандартное исключение - деление на ноль.
Код:
numOne = 4
numTwo = 0
chastnoe = numOne/numTwo

print(chastnoe)
При выполнении программы сработает исключение, которое сразу же выдаст ошибку.

Исключения в Python возникают при использовании необъявленной функции, несуществующей переменной
и т.д. Чтобы их обойти и завершить программу, существует блок команд TRY/EXCEPT. Первая команда вызывает исключение, вторая завершает выполнение команд:
Код:
try:
    numOne = 4
    numTwo = 0
    chastnoe = numOne/numTwo
    print(numOne)
except:
    print(numOne - 2)
И какой будет результат?

Поскольку в программе заложено деление на ноль, то срабатывает вторая часть блока - EXCEPT, поглощающая исключение. В результате ответ - 2.

А для того, чтобы, программа выполнялась в любом случае, независимо от того, что есть ошибка, существует команда FINALY
Код:
try:
    print("7" / 4)
except:
    print("Error!")
finaly:
    print("Good!")
3.png

Работа с файлами.

Основа основ - открытие файлов.

Во всех языках программирования имеется возможность взаимодействия с внешними файлами, Python также не стал исключением. В нем возможно делать следующее:

- Открывать, читать и закрывать файл;
- Изменять файл: удалять и добавлять информацию.

Начнем с того, что просто откроем файл или документ. Для этого используется функция open(). Аргументом данной функции выступает путь к файлу. В том случае, когда нужный нам файл расположен в той же папке, что и проект, указывается только его имя.

Важно: путь до нужного файла необходимо указывать исключительно в кавычках, т.к. это строковый тип данных.

Общий вид функции выглядит так:
Код:
file = open("file.txt")

Добавление новых данных в файл.

Кроме пути до файла в функцию можно добавлять несколько опций, регулирующих работу с файлом. Их называют режимы открытия, ознакомиться с ними можете на иллюстрации ниже:

2.png

Если открывать файл с помощью опции "w", то все ранее записанные данные будут стерты. Также, для всех опций с иллюстрации имеется специально предназначенная для записи данных функция - write().

Общий вид функции, для записи данных в файл:
Код:
file = open("file.txt", 'w')
file.write("Этот текст будет в файле ;)")

Чтение файлов.

Чтобы прочитать данные из файла используют опцию "r". Также для нее есть отдельная функция - read().
Общий вид такой функции будет такой:
Код:
file = open("file.txt", 'r')
readText = file.read()
print (readText)
Работает это следующим образом: файл открывается, после чего все данные из него записываются как значение переменной readText, которая уже и выводит данные на экран.

Закончив работу с файлом, его необходимо закрыть с помощью конструкции: file.close().
Кроме функции read(), имеется другая функция - readlines(). С ее помощью возвращаются все строки из файла по отдельности, создавая из него список.

При открытии или закрытии файла иногда происходят ошибки. Чтобы исправить их можно воспользоваться исключениями. Допустим, вы открыли файл, но во время работы с ним где-то допустили ошибку, при этом файл нужно закрыть:
Код:
try:
    file = open("f.txt", 'a')
    file.write("Text")
finally:
    file.close()
Ниже показан другой способ для закрытия файла с ошибкой:
Код:
with open("file.txt", 'a') as file:
    file.write("Text")
Данная конструкция с with будет закрывать файл самостоятельно после работы с ним, что крайне удобно.

Спасибо за прочтение данного урока. Не забывайте самое главное правило в программировании - практика, практика и еще раз практика!
 

О нас

  • Данный форум посвящен разработкам команды Tenebris, а также связанным с их использованием направлениями в деятельности пользователей. Мы рады приветствовать Вас на форуме и искренне надеемся, что отзывчивое сообщество позволит значительно повысить качество вашей и нашей работы. Присоединяйтесь!

Быстрая навигация

Меню пользователя