![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
Я закончила свою первую прогу на питоне!!! Ее функции: 1. Читает xml-файлы с электронными платежными документами (для незнающих: это банковские платежки); 2. Создает dbf-файл и закачивает в него данные из xml-файла; 3. Корректирует наименования счетов (находит их в текстовом файле); 4. Печатает реестр электронных документов; 5. Формирует новый xml-файл с исправлениями.
Если таким же начинающим, как я, интересен код, могу скинуть по электронке. |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Какой модуль используешь? --------------------
Be easy, stay cool |
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
dbf.py код очень длинный. Могу выложить отдельные функции. Не могу ручаться за рациональное построение программы, но, что все верно работает, гарантирую. Как мне уже сказали, есть много готовых модулей, а я дедовским методом писала ручками. |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
--------------------
Be easy, stay cool |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
||||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
Поддерживаю! proDiva, если сможешь, то пожалуйста, - выложи код. ![]() если тебя потом за это накажут на работе, но можешь не выкладывать - думаю все поймут. ![]() Но если выложишь на форум код, то возможно в результате совместной работе у тебя будет более совершенный код + ты получишь дополнительные знания и навыки. ![]() |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
||||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
Ну тогда подсказывайте, интеллигентная мужская компания)), куда и как выкладывать, а то "в аттач сообщения" - мне не о чем не говорит))))
а по-моему, интеллигентная мужская компания просто хочет убедиться, что девушки не умеют программировать......... и лишний раз убедиться в своем превосходстве))) Парни, я нисколько этому не сопротивляюсь, у вас мышление для программирования "качественней"! |
|||
|
||||
PyS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
это как вложения в эл. почте ![]()
нет! ![]() Думаю, что любопытство движет нами! ![]() |
||||
|
|||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
PyS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
proDiva, тебе с атачем помочь?
|
|||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
Спасибо, уже подсказали. У женщин память лучше, но творческое мышление развито хуже....... т.е. что-то новое нам трудно изобретать, но зато пользуемся чужим опытом превосходно ![]() Добавлено @ 11:35 Щас посмотрим, что получится))) Добавлено @ 11:37 Урра! получилось)) Присоединённый файл ( Кол-во скачиваний: 37 ) ![]() |
|||
|
||||
PyS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
во вложении
Думаю, что proDiva, будет не против. ![]() Присоединённый файл ( Кол-во скачиваний: 26 ) ![]() |
|||
|
||||
ser_gen |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 25.9.2006 Репутация: 1 Всего: 1 |
#возвращает дату (yyyy-mm-dd) в формате dd.mm.yyyy
#r-входящая дата По моему это лучше оформить ввиде строки документации def dataform(self, r): """ возвращает дату (yyyy-mm-dd) в формате dd.mm.yyyy r-входящая дата """ Ну и далее тоже самое. А так ничего. |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
ser_gen, а ещё лучше — в Epytext Markup Language (epydoc).
А так, пока нет времени смотреть исходники. |
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
Для полноты архива не хватает пробного xml-файла..... чтобы проверить работу программы. Добавлено @ 13:15
Вот выкладываю. Это сообщение отредактировал(а) proDiva - 27.9.2006, 15:03 |
|||
|
||||
PyS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
||||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
||||
|
||||
PyS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
||||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
proDiva
Короче, посмотрел я код. Как здесь уже говорили, лучше было бы использовать другой модуль для dbf. Также стоило использовать нормальный модуль для xml. Далее. Зачем везде писали путь для файлов? К тому же такие: ‘c:/XML_Editor/’. Надо было использовать переменные, а пути делать относительными. Честно говоря, мне не понятно, Вы первый раз пишите на Питоне или программу вообще? |
|||
|
||||
Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 4 Всего: 18 |
proDiva, какой у тебя wx стоит (или версия другая или я того...)? + при кодировки не cp1251 запустить не получается (мой случай)
|
|||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
Первый раз на питоне а в замечаниях вы правы........ я говорила, что не уверена в рациональности насчет путей, исправлю....... просто я делала все по частям, а потом собрала в кучу....... и получилось, что везде прописаны пути)) (мне бывший коллега тоже все время говорил, не вбивать пути...... как видите, продолжаю) а с xml я работаю впервые и выбрала вариант, который смогла разобрать по частям. версия 2.6 |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Для первого опыта вполне удачно.
1. Не нужно импортировать os.path, он доступен и при импорте просто os 2. Не рекомендуется делать "from foo import *", следует либо "from foo import Foo, Bar", либо "import foo". Почему: не знаешь точно какие переменные импортировала. Так кстати и быстрей. 3. По стилю все же рекомендуется классы называть с большой буквы, т.е. не "class foo", а "class Foo" 4. Переформатирования слишком сложны (класс dataload). Можно сделать гораздо проще. Например так: а) переформатирование даты '.'.join(reversed('2006-05-25'.split('-'))) (можно для увеличения читабельности разбить по переменным). б) переформатирования дробного "%.2f" % value в) выравнивание строки пробелами влево/вправо: mystr.ljust(n), аналогично и .rjust г) ну и я бы не оформлял как класс (никакого преимущества нет, т.к. не использует ни один атрибут), а оформил как функции. С учетом вышеперечисленных примеров, выделять в функцию стоит лишь переформатирование даты, остальное и так в одну конструкцию ![]() 5. Не стоит городить огород с if .. elif .. elif .. elif .. else. Возможно, проще будет записать словарем. 6. Всё же лучше разбить по модулям. 70кб-исходник тяжко читать, да и реиспользовать потом проще будет. Извини, дальше меня не хватило... Это сообщение отредактировал(а) J2A - 27.9.2006, 19:20 --------------------
Be easy, stay cool |
|||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
На долго же тебя хватило ![]() Я про это и говорила, что не знаю готовых функций для того или иного действия, поэтому громоздила громадный код. По всем этим мелочам неудобно новые темы открывать и мучать людей своими вопросами ![]() Я знаю, что все можно было написать проще и удобнее. Но я все равно довольна, что я ее доделала, а главное - что она работает! Потому что когда я начинала ее писать, я питоновский код впервые в глаза увидела. Как наш зав.кафедрой на лекциях говорил: "Есть прорыв! Идем дальше!" Так что, интеллигентная мужская компания, продолжайте учить дальше ![]() |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
Кстати, проверьте свой код на вшивость: http://pychecker.sourceforge.net/
|
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Проверьте pylint'ом и ужаснитесь ![]() ![]() Это сообщение отредактировал(а) J2A - 27.9.2006, 20:44 --------------------
Be easy, stay cool |
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
А можешь показать пример использования? ![]() Это сообщение отредактировал(а) pythonwin - 28.9.2006, 08:21 |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
||||
|
||||
slav0nic |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 17.5.2006 Репутация: 4 Всего: 5 |
pylint надо с параметрами запускать, так он мне влепил -2 балла)) и джаббер клиенту Gajim - тоже, основная часть ошибок - формирование кода, пробелы одиночные, а не табы и тп
--------------------
python.com.ua |
|||
|
||||
proDiva |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
может оставим мой код в покое? такое ощущение как-будто я его на олимпиаду выставила с большим денежным главным призом)))
как видите, я его не профессионалам предлагала изучить))) |
||||
|
|||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
proDiva, ты главное не переживай - поругали - исправь код - поругают - исправь код - .... - исправь код - похвалили! В конще этой цепочки получишь прекрасный код + навыки. И ещё - тебя уже похвалил J2A: Поэтому не растраивайся ![]() |
|||
|
||||
proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
В этой программе при всем уважении к Вам я ничего менять не буду - ни времени, ни желания! С понедельника уже с ней будут работать, завтра поставлю. Exe-шник уже подготовила. А навыки и Ваши советы буду применять уже в следующих тех.заданиях, так что не расслабляйтесь ![]() |
|||
|
||||
PyS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
||||
|
||||
dvska |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 30.1.2006 Репутация: 6 Всего: 9 |
А вот это зря. Форум для того и нужен. А потом и другие новички по этим темам учиться будут. Бери пример с Pythonwin-а ;) --------------------
|
|||
|
||||
cherep |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 11.1.2006 Где: Москва Репутация: 1 Всего: 4 |
По моему это провокация. =)
Для первого раза на питоне действительно очень неплохо. Видно, что proDiva имеет солидный опыт программирования в других языках. Единственно, мне показалось, что программа написана местами достаточно в процедурном стиле, на Питоне зачастую удобнее и проще использовать функц. подход. Так держать!!! Добавлено @ 02:07 Про процедурный стиль... Там есть библиотечка strutil.py Я конечно понимаю, что она 99 года, но все равно интересно, насколько не по питоновски там написаны функции. Возьмем к примеру
С ходу можно переписать так
А если поднапрячься, то и вовсе так:
|
||||||
|
|||||||
cherep |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 11.1.2006 Где: Москва Репутация: 1 Всего: 4 |
И дальше в том же духе ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |