Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 26, 2018 12:32:44

EvgenZh
Зарегистрирован: 2018-04-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Первый код. Помогите!

Нигде не смог найти полного описания синтаксиса Питона, прошу помочь:

Есть переменные типа
box1
box2
box3
box4
box5
и так далее, вплоть до box100

есть генератор случайных цифр который присваивает значение от 1 до 100 переменной X

теперь мне нужно чтобы некое значение Y присваивалось переменной box_x

т.е., если генератор случайных чисел присваивает x = 4,
то для box4 присваивается Y
если x = 99, то box99 = Y и так далее

Собственно, прошу подсказать синтаксис для связки “box” и “x” чтобы питон понял что я от него хочу?

Отредактировано EvgenZh (Апрель 26, 2018 12:37:08)

Офлайн

#2 Апрель 26, 2018 12:48:02

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Первый код. Помогите!

Не надо делать 100 переменных. Сделай словарь и складывай туда значения по мере надобности.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Апрель 26, 2018 13:14:21

EvgenZh
Зарегистрирован: 2018-04-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Первый код. Помогите!

Rodegast
Не надо делать 100 переменных. Сделай словарь и складывай туда значения по мере надобности.
Спасибо за ответ, почитаю про словари

Однако, вопрос остаётся, хотя бы из любопытства - как синтаксически описать то о чём я спрашивал. Это вообще возможно?

Офлайн

#4 Апрель 26, 2018 14:36:30

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Первый код. Помогите!

Возможно всё. Вот тебе промер того как делать не надо:

 globals().update({"box%i"%x: x for x in range(100)})



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Апрель 26, 2018 14:38:35)

Офлайн

#5 Апрель 26, 2018 16:03:03

EvgenZh
Зарегистрирован: 2018-04-26
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Первый код. Помогите!

Rodegast
Возможно всё. Вот тебе промер того как делать не надо:

не совсем то, что надо. возможно, недостаточно точно выразил мысль…

объявлены 100 переменных box1…100

далее есть такой код внутри цикла:
z = 10
y = random.randint(1,100)
box_y = box_y + z // тут не правильно, я знаю. Случайная переменная box_ должна увеличиваться на 10

Вопрос не в том как элегантно и правильно кодом выразить алгоритм
а именно в синтаксисе связки имени переменной box1, где цифра в имени перменной будет сгенерирована и заранее неизвестна.
box+y, box_y, box&y, box(y)….. или как?

В VBA это было бы :
box & x

Отредактировано EvgenZh (Апрель 26, 2018 16:05:42)

Офлайн

#6 Апрель 26, 2018 21:58:20

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Первый код. Помогите!

EvgenZh
box&y, box(y)….. или как?
Вот так:
 box[y]
EvgenZh
Спасибо за ответ, почитаю про словари
да да почитайте.



Офлайн

#7 Апрель 27, 2018 00:42:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Первый код. Помогите!

EvgenZh
Есть переменные типа
box1
box2
box3
box4
box5
и так далее, вплоть до box100

есть генератор случайных цифр который присваивает значение от 1 до 100 переменной X

теперь мне нужно чтобы некое значение Y присваивалось переменной box_x

т.е., если генератор случайных чисел присваивает x = 4,
Надо тебе переучиться.
  
>>> box = [0] * 100
>>> box
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> x = 10
>>> y = 3
>>> box[x - 1] = y
>>> box
[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> box[x - 1]
3
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version