@MaxYenot

Как преобразовать строку в имя переменной в python?

Здравствуйте. Проблема такая. Есть переменные para1, para2, para3 и так до 10. Эти переменные определены в начале файла. И им присвоено значение.
Нужно эти переменные засунуть в список paragraphs = [] ,при помощи paragraphs.append(para1)

переменным присвоены значения в начале кода.
para1 = 'Это первый параграф'
para2 = 'Это второй параграф'

paragraphs = []

x = 1
userInputs = 10 // это сколько этих переменных должно быть
while x<=userInputs:
var = "para" + str(x)
paragraphs.append(var)
x = x+1

Но проблема в том, что .append в список засовывает строку. А мне надо, чтобы он туда засунул имя переменных!

Потому что, потом
for p in paragraphs:
print(p)
он мне пишет
"para1"
"para2" и так далее

А надо, чтобы писал:
"Это первый параграф"
"Это второй параграф"
То есть значения переменных, которые определены в начале файла.
  • Вопрос задан
  • 10569 просмотров
Решения вопроса 1
Mi11er
@Mi11er
A human...
locals().get("para1")
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Может так лучше?
para = {
            1:'Это первый параграф',
            2:'Это второй параграф',
}

paragraphs = []

x = 1
userInputs = 10 # это сколько этих переменных должно быть
while x<=userInputs:
    paragraphs.append(para[x])
    x = x+1
Ответ написан
hello-world00
@hello-world00
Играю с Python,C
Всё из-за того, что вы генерируете строки paraX, но значение не получаете.
Чтобы получить значение, нужно использовать метод gloabls() / locals(), который возвращает все глобальные / локальные переменные.
#...
paragraphs = [ globals()[f"para{i}"] for i in range(1,11) ]
print('\n'.join(paragraphs))

Но так лучше не делать. Заносите лучше сразу всё в список без лишних переменных
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы