2013-12-17 8 views
0

Я пытаюсь зациклировать это 10 раз и изменить все числа в каждой строке.цикл python и строка печати с переменными

<li>1. <a href='/some/url/index.php?member=_MEMBER_1_'>_MEMBER_1_DESC_ (_MEMBER_1_UNI_IN_) </a></li> 

Я пробовал его с функцией диапазона, но не знаю, как изменить цифры.

#!/usr/bin/python 
for i in range(5): 
print ("<li> %d. <a href='/some/url/index.php?member=_MEMBER_%d_'>_MEMBER_%d_DESC_ (_MEMBER_%d_UNI_IN_) </a></li>") % i 

Возможно, мне нужно установить регулярное выражение для строки и затем фильтровать по номерам. но как их изменить?

ответ

0

Вы должны сделать:

for i in range(5): 
    print ("<li> %d. <a href='/some/url/index.php?member=_MEMBER_%d_'>_MEMBER_1_DESC_ (_MEMBER_%d_UNI_IN_) </a></li>") % **(i, i, i)** 

Обратите внимание на 3 раза, что я поставил "я" переменную.

И если вы хотите, чтобы сделать петлю в 10 раз, при условии, что вам нужно число от 1 до 10, вы должны использовать: для г в диапазоне (1, 11): печать ...

3

Рассмотрим:

>>> "%d%d%d" % 1 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: not enough arguments for format string 
>>> "%d%d%d" % (1,1,1) 
'111' 

Вы должны указать номер для каждого '%d' в вашей строке.

Обратите внимание, что вы можете обойти эту проблему, если вы используете форму словаря:

>>> "%(val)s%(val)s%(val)s" % {'val': 1} 
'111' 

Но в эти дни я предпочел бы .format:

>>> '{0}{0}{0}'.format(1) 
'111' 

В вашем случае:

print ("<li> {0}. <a href='/some/url/index.php?member=_MEMBER_{0}_'>_MEMBER_{0}_DESC_ (_MEMBER_{0}_UNI_IN_) </a></li>").format(i) 
Смежные вопросы