我在web2py / python中有以下代码:
{{for row in db(db.t_problems.id==db.t_problems(request.args(0))).select(): }}
它抓住所有行,因为我需要它们。行是实际的python结果,当我打印出来时是:
>>> testFunction(2, 3, 4) True >>> testFunction(2, 1, 4) False >>> legalTriangles(-1, -1, -1) False
(当你进行原始输出时,这就是你得到的结果:)
>>> testFunction(2, 3, 4)\r\nTrue >>> testFunction(2, 1, 4)\r\nFalse >>> legalTriangles(-1, -1, -1)\r\nFalse
我需要做的是删除>>>,并在一个变量结果中使用testFunction(X,Y,Z),在另一个变量结果中使用True / False。我认为这可能有用,但循环只剥离\ r \ n,而不是将它们放在一个新变量中使用:
ios = row.f_tests.split('>>>') #results are now the testFunctions without the >>>
for io in ios:
i = io.split("\r\n")
结果变为:
testFunction(2, 3, 4)True testFunction(2, 1, 4)False testFunction(-1, -1, -1)False
但我需要的是......
func1 = testFunction(2, 3, 4)
res1 = True
func2 = testFunction(2, 1, 4)
res2 = False
所以我可以把它们放进桌子里。有任何想法吗?谢谢!
答案 0 :(得分:0)
在原始python中,它将是,
s = ">>> testFunction(2, 3, 4)\r\nTrue >>> testFunction(2, 1, 4)\r\nFalse >>> legalTriangles(-1, -1, -1)\r\nFalse"
for func, result in [i.splitlines() for i in s.split(">>>") if i]:
print "<tr><td>%s</td><td>%s</td></tr>" % (func.strip(), result.strip())
结果:
<tr><td>testFunction(2, 3, 4)</td><td>True</td></tr>
<tr><td>testFunction(2, 1, 4)</td><td>False</td></tr>
<tr><td>legalTriangles(-1, -1, -1)</td><td>False</td></tr>
您应该能够将其翻译为web2py的模板或“查看”语言。我看到from here它支持for循环。