Форум сайта python.su
Если вам понравилась идея, напишите как можно дополнить её. Версия проекта (v1.2)
Хай, хотел сегодня показать свою библеотеку под названиям KLL - Это мини-библеотека позволяет улегчеть работу с файлами.
Пример:
Python:
File = open('name', ‘w’) - open - мы вызываем функцию, записываем в неё имя и операцию ('w') тоесть запись либо создания файла.
File.write('text') - Берём File и вызываем функцию write для записи text в файл.
File.close() - Закрываем файл, чтоб не было проблем в дальнейшем в работе с ним.
KLL:
KLL('name', ‘Create.File’, None) name - Имя, Create.File - оператор создания файла, None - метод которого в Create.File нет.
Либо:
KLL('test.txt', ‘Write.File’, ‘text’) - Мы создадим файл, запишим туда text, и закроем.
В KLL уже придусмотрен close(), его вызывать не надо с работой KLL!, KLL будет развиватся в лучшую сторону.
KLL(Argument, Operator, Method) - Argument - Имя файла, Operator - Операции с файлом, Method - Что надо задать оператору.
Операторы:
Create.File:
Создаёт файл с названием Argument. У оператора нет метода, ему это не нужно, иначе будет ошибка KLL: Operator: Error
Open.File:
Читает файл имени Argument, У оператора нет метода, ему это не нужно, иначе будет ошибка KLL: Operator: Error
Write.File:
Записывает значения Method в Argument. Метод указывает, что будет записано в файл.
Delete.File:
Удаляет файл имени Argument, методов нету.
Программа на KLL:
operator = input('Operation: ‘)
if operator == ’1':
name = input('Name: ‘)
KLL(’info.txt', ‘Write.File’, name)
elif operator == ‘2’:
KLL('info.txt', ‘Open.File’, None)
elif operator == ‘3’
KLL('info.txt', ‘Delete.File’, None)
else:
print('Error Operation.')
Код с модулем KLL:
import os ''' def KLL accent: argument << operator << method, ( Developer library: Maks Dobragin (gerod) ) ''' def KLL(argument, operator, method): #Переменные для работы.. Argument = argument Operator = operator Method = method '''''''''''''''''''''''''''''' #Переменные внутринести функции. Write = method KlL = 'KLL: ' Read = 'Read' write = 'Write.File' OperW = 'w' WriteFile = 'w' OperR = 'r' Create = 'Create.File' Open = 'Open.File' Delete = 'Delete.File' '''''''''''''''''''''''''''''' #Операторы, методы. '''|Операторы|''' if Operator == Create and Method == None: File = open(Argument, OperW) File.close() elif Operator == write and Method == Write: try: File = open(Argument, WriteFile) File.write(Write) File.close() except FileNotFoundError: print(KlL,'File','(', Argument,')', 'Not Found') elif Operator == Open and Method == None: try: File = open(Argument, OperR) print(File.read(9999)) File.close() except FileNotFoundError: print(KlL,'File','(', Argument,')', 'Not Found') elif Operator == Delete and Method == None: try: os.remove(Argument) except FileNotFoundError: print(KlL,'File','(', Argument,')', 'Not Found') else: print(KlL, 'Operator: Error') ''''''''''''''''''''''''''''''
Отредактировано Gerod (Окт. 7, 2018 15:39:21)
Офлайн
GerodВыкладывай почаще свой код, тебе укажут на ошибки в нём. Так будешь учиться нормальному программированию. А если будешь прятать код, то будешь годами иметь ошибочные представления и даже не знать об этом.
так как код могут украсть, хотя идею тоже
GerodНу файлы-то принято открывать через оператор контекста with, который тоже не требует вызова .close(), так как with при входе в контекст вызывает __enter__() у объекта и при выходе из контекста вызывает __exit__() у объекта. А объект уже решает, что делать при вызове его __enter__() и как чиститься при вызове его __exit__().
В KLL уже придусмотрен close(), его вызывать не надо с работой KLL!
>>> f = open('/etc/passwd') >>> f.__enter__ <built-in method __enter__ of _io.TextIOWrapper object at 0x7f2011a01b40> >>> f.__exit__ <built-in method __exit__ of _io.TextIOWrapper object at 0x7f2011a01b40> >>>
Офлайн
py.user.next
Ну файлы-то принято открывать через оператор контекста with, который тоже не требует вызова .close(), так как with при входе в контекст вызывает __enter__() у объекта и при выходе из контекста вызывает __exit__() у объекта. А объект уже решает, что делать при вызове его __enter__() и как чиститься при вызове его __exit__().
Отредактировано Gerod (Окт. 7, 2018 15:48:36)
Офлайн
Ещё вопрос, мне есть смысл изучать программирования? У нас просто в школе информатика а будет через 1 год
Офлайн
это вообще не связанные вещи - если интересно и есть желание - то смысл есть. А Если вы действительно еще в школе, то у вас еще и есть время для выхода на профессиональный уровень
Офлайн
GerodСмотри по своим математическим показателям. То же шифрование или графические форматы файлов (jpg, png) или аудио и видео (mp3, avi), требуют кучи операций с многочленами, с функциями типа f(x) = … . Нужно будет умножать многочлены на многочлены, делить их. Для функций нужно будет искать производные, искать интегралы. Если не вывозишь математику, будешь простым автоматизатором, алгоритмы у тебя будут слабые, неэффективные, долгие. Ты просто запустишь свою программу и не дождёшься, когда она там закончит работу. Потом вот эти все анализы пользователей или там событий требуют тоже математическую статистику, которая также описана математическим языком. Ты её не поймёшь, если не будешь знать математики. Та же репутация на форумах, рейтинги там всякие вычисляются через специальные математические формулы. Так что ключ к программированию не в информатике лежит. Информатика тебя учит работе с инструментами, которыми ты потом будешь записывать эту всю математику на компьютерном языке, ввводить её в компьютер.
Ещё вопрос, мне есть смысл изучать программирования?
Отредактировано py.user.next (Окт. 8, 2018 14:03:09)
Офлайн
py.user.next
Я понял, основа программирования это математика. (Если программным языком), Class - это математика, Def(функция) - это информатика./quote]
Офлайн
А с кодом как?
import os ''' def KLL accent: argument << operator << method, ( Developer library: Maks Dobragin (gerod) ) ''' def KLL(argument, operator, method): #Переменные для работы.. Argument = argument Operator = operator Method = method '''''''''''''''''''''''''''''' #Переменные внутринести функции. Write = method KlL = 'KLL: ' Read = 'Read' write = 'Write.File' OperW = 'w' WriteFile = 'w' OperR = 'r' Create = 'Create.File' Open = 'Open.File' Delete = 'Delete.File' '''''''''''''''''''''''''''''' #Операторы, методы. '''|Операторы|''' if Operator == Create and Method == None: File = open(Argument, OperW) File.close() elif Operator == write and Method == Write: try: File = open(Argument, WriteFile) File.write(Write) File.close() except FileNotFoundError: print(KlL,'File','(', Argument,')', 'Not Found') elif Operator == Open and Method == None: try: File = open(Argument, OperR) print(File.read(9999)) File.close() except FileNotFoundError: print(KlL,'File','(', Argument,')', 'Not Found') elif Operator == Delete and Method == None: try: os.remove(Argument) except FileNotFoundError: print(KlL,'File','(', Argument,')', 'Not Found') else: print(KlL, 'Operator: Error') ''''''''''''''''''''''''''''''
Офлайн
GerodКласс - это множество признаков, по-математически - кортеж элементов. Если классов нет в языке, ты можешь их сделать, подав элемент и кортеж признаков этого элемента. А функция - это обычная математическая функция. То есть у неё точно так же есть область определения и область допустимых значений. Есть и график. Алгоритм - это математическая функция такая. И когда ты программируешь, ты думаешь математическими функциями. А когда ты их придумал, какие они должны быть, тогда ты и записываешь их на компьютерном языке уже.
Class - это математика, Def(функция) - это информатика.
GerodДля кода есть свои правила. Код должен быть правильным, понятным и легко меняемым.
А с кодом как?
Отредактировано py.user.next (Окт. 8, 2018 23:41:18)
Офлайн
Этот пример избыточного кода.
Кроме того не вижу что бы было учтено элементарные вещи как считывание файла построчно, построчная запись, бинарные данные и так далее и тому подобное.
Я уже не говорю что банально нет возможности открыть файл удалить данные и записать.
Что делается в 2 строки
with open('filename', w) as file: ... ...
Офлайн