Форум сайта python.su
Как создать переменную исходя от числа?
Например нужно ввести количество чего либо.
Затем исходя от введенной цифры создается это же количество переменных.
Офлайн
Ввести количество можно при помощи input:
num=input('Enter the number of vars:')
for k in range(num): locals()['myvar%s'%k] = None
Отредактировано scidam (Сен. 8, 2016 04:01:48)
Офлайн
scidamМожно по подробнее???
Создать переменные можно изменив текущее окружение (namespace):
for k in range(num): locals() = None
Посмотреть созданное можно при помощи dir() или того же locals().
Возможно, нужно добавить какую-либо предобработку в отношении num, т.к. пользователь может ввести что угодно на запрос, не только целое положительное небольшое число…
Отредактировано dimq130 (Сен. 19, 2016 20:38:55)
Офлайн
dimq130Вообще, надо список просто создать. Если имена нужны, можешь словарь создать.
Затем исходя от введенной цифры создается это же количество переменных.
Офлайн
В 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'] >>>
Офлайн