Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамические названия переменных, как это сделать? 
V
    Опции темы
RM2010
  Дата 11.3.2010, 21:35 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: -1
Всего: 2



Код

from tkinter import *
import random

app = Tk()
app.geometry('300x355+600+300')
canvas = Canvas(app, width=304, height=355)
canvas.pack(side=TOP)

for i in range(20):
    y = random.randrange(300)
    x = random.randrange(300)
    square = canvas.create_rectangle(x,y,x+20,y+20, fill="yellow")

app.mainloop()



Как следует из кода, данная программа создаёт на канвасе 20 прямоугольников. Но как сделать так, чтоб каждый из них был под своим именем, чтоб потом к каждому из них можно было обращаться, двигать и т.д.

То есть смотреться это должно как-то вот так:

for i in range(20):
     ...
    square+i = canvas.create_rectangle(x,y,x+20,y+20, fill="yellow")


и тогда появлялся бы square1, square2, square3 и т.д.

Заранее спасибо!
PM MAIL   Вверх
pythonwin
Дата 11.3.2010, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



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

Добавлено через 4 минуты и 8 секунд
примерно так:
Код

from tkinter import *
import random
app = Tk()
app.geometry('300x355+600+300')
canvas = Canvas(app, width=304, height=355)
canvas.pack(side=TOP)
squares = []
for i in range(20):
    y = random.randrange(300)
    x = random.randrange(300)
    squares.append(canvas.create_rectangle(x,y,x+20,y+20, fill="yellow"))
app.mainloop()

PM WWW GTalk Jabber   Вверх
RM2010
Дата 11.3.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: -1
Всего: 2



>>> то лучше использовать список и словарь. 
Естественно, а можно примерчик кода - как переменным присваивать названия по списку?

Добавлено через 4 минуты и 44 секунды
Вроде работает, спасибо!  smile 
PM MAIL   Вверх
pythonwin
Дата 11.3.2010, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Цитата(RM2010 @  12.3.2010,  01:24 Найти цитируемый пост)
Вроде работает, спасибо!  smile  

пожалуйста smile
настоятельно советую прочитать документацию и написать десятка два программ-примеров 
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0642 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.