Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 16, 2008 08:59:27

mdbm
От:
Зарегистрирован: 2006-12-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

Доброго вам.
Вообщем взялся за изучение Пайзона
Потихоньку эксперементирую…
Имею опыт 1С-программирования.

Сейчас пробую сделать курсор на экране Nokia N82

Возникла задача, как инициализировать начальные координаты курсора.

cursor = TopWindow.TopWindow()
img = graphics.Image.new((10,10))
cursor.add_image(img, (x1,y1,x2,y2))
cursor.size = (10, 10)

running=1

Далее при клике на джойстике, я увеличиваю(уменьшаю) координаты на единицу
и тем самым двигаю cursor на экране.

while running:

if keyboard.pressed(EScancodeLeftArrow):
x1=x1+1…

Но возник вопрос…
Как правильно инициализировать (x1,y1,x2,y2) нач. значениями ???

В 1С есть предопределенная процедура ПриОткрытии()
Она вызывается один раз, при открытии программы
В ней то я обычно и инициализирую глобальные переменные

А в Питоне как это реализовано ?
Просмотрел много примеров.ру но что не нашел

И вообще , правильный ли путь я выбрал для реализации курсора на экране смартсфона в своем приложении ? через TopWindow…..



Отредактировано (Дек. 16, 2008 15:34:33)

Офлайн

#2 Дек. 16, 2008 09:34:48

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

mdbm
Как правильно инициализировать (x1,y1,x2,y2) нач. значениями ???
Это относится к питону в целом, поэтому отвечу в этом разделе.
Если я правильно понял вопрос, то
прям так и написать в начале программы (прежде чем эти переменный начнут использоваться):
x1 = 0
y2 = 0
x2 =0
y2 =0
Нули я для примера подставил. Там могут быть и другие числа, и даже вычисляемые значания.



Отредактировано (Дек. 16, 2008 09:36:21)

Офлайн

#3 Дек. 16, 2008 15:25:57

mdbm
От:
Зарегистрирован: 2006-12-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

А как вообще работает программа на Питоне?
Что происходит с программой, если пользователь программы ничего не делает ?
Т.е. я хочу спросить если я в одной части программы присвою переменной х =1,
а в другой части программы напишу х=2
Чему будет равен х. ?
Зависит ли значение Х от конкретного места расположения Х в модуле программы ?

Своими словами …
мне показалось что программа постоянно сверху вниз пробегает по коду и ищет чтобы еще выполнить…
И поэтому при попытке присвоить начальное значение для Х =0
и потом менять , при клике курсором телефона Х=Х+1
приводило к тому, что Х всегда обнуляется и равен 0.



Офлайн

#4 Дек. 16, 2008 15:31:17

mdbm
От:
Зарегистрирован: 2006-12-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

может есть некий пример, файл.ру
чтобы я мог на практике разобрать код по полочкам и выяснить метод реализации…
интересует инициализация переменных при старте
и последующее изменение Х=Х+1

думаю это широко применяется в различных игрушках, где необходимо двигать персонажа по экрану

Извините, если мой вопрос звучит примитивным, обещаю быстро усвоить….
Сегодня дома продолжу процесс программирования-изучения Питона….



Офлайн

#5 Дек. 16, 2008 15:48:14

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

mdbm
А как вообще работает программа на Питоне?
Учить матчасть



Офлайн

#6 Дек. 16, 2008 15:57:33

mdbm
От:
Зарегистрирован: 2006-12-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

import appuifw
from appuifw import *
import e32
from key_codes import *
import TopWindow
import graphics


class Keyboard(object):
///////////////////////////////////////////

keyboard=Keyboard()
running=1


# create your application logic ...


def exit_key_handler():
global running
running=0
app_lock.signal()


def show_cursor():
cursor.show()

def hide_cursor():
cursor.hide()

a=5
b=5
c=5
d=5
cursor = TopWindow.TopWindow()
img = graphics.Image.new((10,10))
cursor.add_image(img, (a,b,c,d))
cursor.size = (10, 10)
cursor.corner_type = 'square'
cursor.background_color = 0xff0000
cursor.shadow = 2




app_lock = e32.Ao_lock()
appuifw.app.screen='normal'
canvas=appuifw.Canvas(event_callback=keyboard.handle_event, redraw_callback=None)
appuifw.app.body=canvas

# create the application menu including submenus
appuifw.app.menu = [(u"System", ((u"cursor on", show_cursor),
(u"cursor off", hide_cursor)))]


appuifw.app.exit_key_handler = exit_key_handler


while running:

if keyboard.pressed(EScancodeLeftArrow):
a=a+1

e32.ao_yield()

app_lock.wait()



Офлайн

#7 Дек. 16, 2008 16:06:54

mdbm
От:
Зарегистрирован: 2006-12-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

balu
Учу, но нет ничего лучше чем учить на практике. ;)
Сделать курсор - это часть моего обучения….
Параллельно читаю скаченное….
С принципом работы программ еще не столкнулся…



Офлайн

#8 Дек. 16, 2008 16:35:00

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

С принципом работы программ еще не столкнулся…
Почитай про Алгоритм.
В 2-х словах - программа не будет
постоянно сверху вниз пробегает по коду и ищет чтобы еще выполнить…
если ей специально не задать такое поведение.
По в поводу вопроса о значении x в разных местах программы - единственное что могу посоветовать, это почитать про алгоритм и начать с самых простых программ (типа “Hello World” или перестановки списков). Тогда станет понятнее что такое переменная, цикл как выполняется программа и т.п.

Офлайн

#9 Дек. 16, 2008 16:48:18

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

mdbm
В дополнение к тому что посоветовал Ferroman, советую разобраться с областью видимости переменных.
http://www.wellho.net/forum/Programming-in-Python-and-Ruby/Variable-scope-in-Python.html
http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/



Офлайн

#10 Дек. 16, 2008 19:04:28

mdbm
От:
Зарегистрирован: 2006-12-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с инициализацией переменных при старте программы

Спасибо. Буду двигаться ….



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version