python循环和打印带变量的字符串

时间:2013-12-17 03:37:03

标签: python loops

我试图循环10次并更改每一行的所有数字。

<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

也许我必须为该行设置正则表达式然后过滤数字。但那么如何改变呢?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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)**

注意我放“i”变量的3次。

如果你想循环10次,假设你需要1到10之间的数字,你应该使用:     for i in range(1,11):         打印......