2013-07-18 3 views
-1

То, что я пытаюсь сделать, был бы намного легче понять, глядя на коде:переменной Печать с увеличивающимися суффиксами

suffix = 1 
prefix1="success" 
prefix2="success" 
prefix3="success" 
prefix4="success" 
while suffix<5: 
    temp = "prefix"+str(suffix) 
    print temp 
    suffix+=1 

Так что я пытаюсь сделать, это напечатать значение prefix1 , prefix2 и т. д., что является «успехом» в отличие от «prefix1», «prefix2» и т. д. Я полностью понимаю, почему мой код работает так, как это, но я хочу знать, есть ли способ распечатать значения префикса переменных + суффикс.

+0

Это никогда не является хорошей идеей. Вместо этого используйте список или dict; для чего они нужны. –

+0

Да, у меня есть списки и словари для этой цели. Спасибо за помощь. –

ответ

1

Я думаю, что с помощью Dict бы больше смысла:

d = { 
     'prefix1' : 'success', 
     'prefix2' : 'success', 
     'prefix3' : 'success', 
     'prefix4' : 'success' 
    } 

for i in range(1,5): 
    temp = "prefix%s" % i 
    print d[temp] 
+0

Я не думаю, что это отвечало на то, о чем я просил, но я только что узнал об функции eval(), которую я искал. Если я изменю: темп = «префикс» ул (суффикс) + к Темп = Eval («префикс» ул (суффикс +)) он работает и печатает «успех» несколько раз, спасибо в любом случае для более быстрый способ сделать цикл, если я его сменил на: для i в диапазоне (1,6): print eval ("prefix% s"% str (i)) –

+0

Возможно, использование dict соответствовало бы вашим потребностям? Поэтому, если 'temp' был' 'prefix1" ', вы хотите получить его значение' 'success ''? – jh314

+0

Да, это тоже сработает, но метод eval() выглядит быстрее. –

Смежные вопросы