Форум сайта python.su
0
Как создать переменную исходя от числа?
Например нужно ввести количество чего либо.
Затем исходя от введенной цифры создается это же количество переменных.
Офлайн
35
Ввести количество можно при помощи input:
num=input('Enter the number of vars:')
for k in range(num): locals()['myvar%s'%k] = None
Отредактировано scidam (Сен. 8, 2016 04:01:48)
Офлайн
0
scidamМожно по подробнее???
Создать переменные можно изменив текущее окружение (namespace):
for k in range(num): locals() = None
Посмотреть созданное можно при помощи dir() или того же locals().
Возможно, нужно добавить какую-либо предобработку в отношении num, т.к. пользователь может ввести что угодно на запрос, не только целое положительное небольшое число…
Отредактировано dimq130 (Сен. 19, 2016 20:38:55)
Офлайн
857
dimq130Вообще, надо список просто создать. Если имена нужны, можешь словарь создать.
Затем исходя от введенной цифры создается это же количество переменных.
Офлайн
35
В Python2 все работает:
Python 2.7.8 (default, Sep 30 2014, 15:34:38) [GCC] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> num=input('Enter the number of vars:') Enter the number of vars:15 >>> for k in range(num): locals()['myvar%s'%k] = None ... >>> dir() ['__builtins__', '__doc__', '__name__', '__package__', 'k', 'myvar0', 'myvar1', 'myvar10', 'myvar11', 'myvar12', 'myvar13', 'myvar14', 'myvar2', 'myvar3', 'myvar4', 'myvar5', 'myvar6', 'myvar7', 'myvar8', 'myvar9', 'num'] >>>
Python 3.4.1 (default, May 23 2014, 17:48:28) [GCC] on linux Type "help", "copyright", "credits" or "license" for more information. >>> for k in range(int(num)): locals()['myvar%s'%k] = None ... >>> dir() ['__builtins__', '__cached__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'k', 'myvar0', 'myvar1', 'myvar10', 'myvar11', 'myvar12', 'myvar13', 'myvar14', 'myvar2', 'myvar3', 'myvar4', 'myvar5', 'myvar6', 'myvar7', 'myvar8', 'myvar9', 'num'] >>>
Офлайн