Найти - Пользователи
Полная версия: Помогите с инициализацией переменных при старте программы
Начало » Python для новичков » Помогите с инициализацией переменных при старте программы
1 2
mdbm
Доброго вам.
Вообщем взялся за изучение Пайзона
Потихоньку эксперементирую…
Имею опыт 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…..
shiza
mdbm
Как правильно инициализировать (x1,y1,x2,y2) нач. значениями ???
Это относится к питону в целом, поэтому отвечу в этом разделе.
Если я правильно понял вопрос, то
прям так и написать в начале программы (прежде чем эти переменный начнут использоваться):
x1 = 0
y2 = 0
x2 =0
y2 =0
Нули я для примера подставил. Там могут быть и другие числа, и даже вычисляемые значания.
mdbm
А как вообще работает программа на Питоне?
Что происходит с программой, если пользователь программы ничего не делает ?
Т.е. я хочу спросить если я в одной части программы присвою переменной х =1,
а в другой части программы напишу х=2
Чему будет равен х. ?
Зависит ли значение Х от конкретного места расположения Х в модуле программы ?

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

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

Извините, если мой вопрос звучит примитивным, обещаю быстро усвоить….
Сегодня дома продолжу процесс программирования-изучения Питона….
balu
mdbm
А как вообще работает программа на Питоне?
Учить матчасть
mdbm
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()
mdbm
balu
Учу, но нет ничего лучше чем учить на практике. ;)
Сделать курсор - это часть моего обучения….
Параллельно читаю скаченное….
С принципом работы программ еще не столкнулся…
Ferroman
С принципом работы программ еще не столкнулся…
Почитай про Алгоритм.
В 2-х словах - программа не будет
постоянно сверху вниз пробегает по коду и ищет чтобы еще выполнить…
если ей специально не задать такое поведение.
По в поводу вопроса о значении x в разных местах программы - единственное что могу посоветовать, это почитать про алгоритм и начать с самых простых программ (типа “Hello World” или перестановки списков). Тогда станет понятнее что такое переменная, цикл как выполняется программа и т.п.
slivlen
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/
mdbm
Спасибо. Буду двигаться ….
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB