我正在使用此代码在每行上创建列表的所有元素:
ans = [multiplayer_msg, rockstar_msg, reddead_msg, crashbandicoot_msg, splitscreen_msg, codemasters_msg, wildewesten_msg, sports_msg, voor18_msg, september_msg]
#strings
ans = ("\n""\n" "- ".join(ans))
\ n应该在另一行上执行,但是当我运行它时,它看起来像这样:
https://i.gyazo.com/231ce7d25951af57f380019e3db9ded2.png
如何使列表元素每行显示一个?
编辑:
我正在使用带有Flask的www.pythonanywhere.com
这是我的python代码"连接"到HTML代码:
return render_template("quizrezult_page.html", ans=ans)
这是我的HTML代码:
<span>{{ ans }}</span>
答案 0 :(得分:1)
print(*ans, sep='\n')
应该适合你
答案 1 :(得分:1)
如果你用html渲染它,\n
将不会有任何效果。您可以尝试使用<br>
标记。
ans = '<br>'.join(ans)
虽然如果您实际上是在尝试制作项目符号列表,但可以考虑使用<ul>
。 e.g。
ans = '<ul><li>' + '</li><li>'.join(ans) + '</li></ul>'
答案 2 :(得分:1)
鉴于anaswers和评论,您似乎正在使用一些模板系统来输出HTML。默认情况下,性能良好的模板系统将转义HTML标记(以避免不安全的标记注入)。你当然可以告诉你的模板系统不要逃避这个特定的内容,但这不是最好的解决方案,目前为止:使用模板的重点是在模板中格式化你的内容并保持Python代码没有标记。
IOW,你不应该在python代码中连接你的列表内容,而是使用模板本身来呈现它。你没有指定你正在使用的模板引擎(好吧,你甚至没有在你的问题中提到任何模板,这会节省每个人的时间......)但是在Django中,这可能看起来像(answers
是你的列表):
{% for answer in answers %}
<p>
{{ answer }}
</p>
{% endfor %}
编辑:好的,所以你正在使用Flask。如果您阅读Flask's doc on templates,您首先要读的是(重点是我的):
模板使用Jinja2语法,默认启用自动加载。这意味着除非您在代码中使用标记或模板中的安全过滤器标记值,否则Jinja2将确保特殊字符,例如&lt;或者&gt;使用XML等价物进行转义。
话虽如此,我的建议仍然是:不要在Python代码中构建你的html,而是使用你的模板引擎,这就是它的用途。 Jinja2语法来自Django模板,因此我的上述代码段应该按原样运行或只需稍作修改 - 但您可能希望更改标记以使用项目符号列表或类似内容。