HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: Однажды Питон решил начать изучать я... :)
Страницы: [1] 2

[Ответить]
Serge_RUS [27.06.2006 11:15] Однажды Питон решил начать изучать я... :):
Всех приветствую!

1. PythonCE - вещь, конечно, достойная в своем роде,но... после help() я не вижу интерактивной помощи...

2. Как запускать .py файлы?

3. Кто в каком блокноте пишет программы?

4. Что вы можете посоветовать почитать про особенности программирования в Python на Pocket PC?

5. Что вообще можно почитать на русском про Пион, кроме python.ru?

Заранее благодарен!
Тихоня [27.06.2006 13:24] :
Python очень хороший язык программирования. Межплатформенный, т.е. можно создать программу, которая одинаково запустится почти на любой распространенной ОС. PythonCE почти полностью совместим с версией для ПК.

1. Помощь: python.org и скачиваем документацию (поставил CHMeBookReader на КПК и пользуюсь хелпом от "настольного" Питона)

2. Кликаешь на него - он и запускается (если нет - то надо создать ассоциацию на расширение py и pyw)

3. Именно в нем Pocket Notepad. (еще можно в TotalCommander или lgtEditor) Но думаю сделать свой редактор: чтобы настраивалась ширина табуляции, были автоотступы. (сейчас времени нет, буду делать наверное осенью)

4. Python это межплатформенная разработка ПО. Совместимость Python для Windows и для Windows CE почти полная.
Но есть некоторые недоработки:
- про консольные программы лучше забыть. Консольный ввод глючит.
*Выход*: создать графический интерфейс с виджетом типа Text и перенаправить системные потоки ввода/вывода в него и соответствующие функции.

- в Pocket Tcl/Tk в виджеты нельзя ввести русский текст с экранной клавиатуры (получаются странные символы и квадратики)
*Выход*: сделал Python C модуль с функцией InputBox. Вводить/редактировать строки на русском можно через нее.

- в Pocket Tcl/Tk если создать окно на весь экран, то при изменении конфигурации виджетов размеры окна могут слететь.
*Выход*: задать размеры окна меньше экрана, тогда глюк исчезает
root = Tk()
root.geometry('100x100+10+10')
root.state('zoomed')

- в Pocket Tcl/Tk не поддерживаются меню (ошибки не происходит, просто меню не отображается)
*Выход*: вместо меню пользуемся Button

- при отработке движения стилуса и сообщений <Motion> некоторые отчеты каждую секунду сбойные: (x, y) = (-3, 14199456) Это критично для виджета Scale
*Выход*: в своих программах в обработчике Motion вставляем проверку:
if x<0: return
(если нужен Scale - пишем его сами )

Отмечу, что PythonCE очень надежен (у меня не было сбоев, зависаний с ним).

На моей личной страничке выложу архивчик mylibs.zip в нем InputBox (под ARM процессоры) и некоторые полезные функции для Win CE
Тихоня [27.06.2006 13:36] :
5. Есть список рассылки на http://zope.net.ru/ в нем общается большинство русскоговорящих Питон программистов. Почему то по Питону форумы не очень пошли, а вот почтовая конференция активна и удобна.

Книжки: у меня их 2: Роман Сузи Python изд. BHV и еще Программирование на Python. М.Лутц. Они хорошо дополняют друг друга - более чем достаточная документация
sshd [27.06.2006 13:43] :
так же, как и perl
Тихоня [27.06.2006 13:45] :
Гмм. еще момент про InputBox. Чтобы делать межплатформенные программы на Питоне, то лучше делать проверки в программе, типа:
import sys

...
if sys.platform == 'Pocket PC':
...
...
else:
...

Тогда на КПК будут вызываться специфические модули и функции (типа Input Box), а при запуске в других ОС ошибки не будет, свои команды и функции.
Тихоня [27.06.2006 13:46] :
Кстати, видели в новостях: среда для TCL под Pocket PC - тоже интересный вариант (интересно там с экранной клавой в юникод есть проблемы или нет гммм..)
Serge_RUS [27.06.2006 14:40] :
Большое спасибо, Тихоня!

Следующая очередь вопросов...

1. С помощью разобрался. Всё гуд!

2. Как создать ассоциацию? (желательно по пунктам, как для тупых, ну или можно послать на доку)

3. С интерактивным режимом разобрася. А-ля навороченный калькулятор + логичный васик + человеческаий help + вкусные модули.

4. Как работать с графическим интерфейсом? (Что такое TK, TCL? Как модуль вызываю -- модуль не найден) Хотя бы азы с мелким примерчиком и пинок на доку.

PS для флейма: Perl глянул, тронул, нухнул -- не понравилось.

Заранее спасибо!
Тихоня [27.06.2006 15:17] :
2. Ставим на КПК файловый менеджер (GSFinder к примеру), там в опциях есть работа с ассоциациями файлов (как в обычном Windows) Т.е. создаем тип файлов pyw ассоциация на python.exe и для py тоже самое. (и для pyc можно) (но вообще странно, ассоциации должны были выставиться при установке PythonCE, вы последнюю версию ставили? Python-2.4.3-20060430 должна быть (в ней исправили некоторые ошибки)) Кликаем на файлы - они должны запускаться гмм..

4. Хахаха! Здесь проще книжку купить
Насчет Tcl/Tk поясняю. Современные языки программирования не включают в себя какие то особые системы графич. интерфейса, а способны через соответствующие библиотеки работать почти со всеми существующими (Tcl/Tk, wxWindow, Windows GUI/GDI, GTK и много др.). По умолчанию обычно ставится/используется Tcl/Tk, как одна из самых мощных и переносимых систем графического интерфейса (Tcl это язык программирования для задач гр. интерфейса и интеграции приложений, Tk - графич. библиотека к нему). Т.е. хоть из Perl, хоть из Python, хоть из OCAML или Mozart можно обращаться к Tcl/Tk.

В PythonCE поддержка Tcl/Tk встроена, но саму Tcl/Tk надо ставить дополнительно. на http://sourceforge.net/projects/pythonce/
идем в download, открываем View older releases in the pythonce package » и в самом низу - в первом релизе скачиваем архив Tkinter-Files.zip. В нем папки, которые надо скопировать в корень файловой системы (dll в Windows и каталоги с графич. системой).

Простенький пример из Питона (Tkinter это Питон модуль связи с Tcl/Tk):

# coding: cp1251

from Tkinter import *

root = Tk()
root.title(u'Моя программа ')

Label(root, text=u'Привет!').pack()
Button(root, text=u'Закрыть', command=root.quit).pack()

root.mainloop()

Вот так Может быть немного запутанно разъяснил, но на самом деле все просто и удобно. через Tkinter просто и быстро создавать оконные программы.
Тихоня [27.06.2006 15:21] :
Есть риск разжечь "религиозные войны"
Но все таки замечу:
Perl как прикладной язык высокого уровня не очень то хорош. Он заточен под свои задачи. А Питон - полноценный современный язык для создания прикладного софта. Включает в себя ООП, процедурную и частично функциональную парадигму, что значительно повышает выразительность. Perl и Python как бы противоположны по синтаксису В Питоне важна хорошая семантика, синтаксис, выразительность, это помогает делать большие и очень большие проекты.
sshd [27.06.2006 15:30] :
ООП и в perl'е есть.
хотя конечно прошлое даёт о себе знать.....
всё-таки изначально он был языком для парсинга логов....
[Ответить]
[Вперед >]