Cal*_*ton 1 html python string
我正在尝试用 python 编写一个函数,该函数将获取我定义的字符串列表,并将它们显示为单个字符串,即上述字符串的 HTML 无序列表。到目前为止,我的代码是:
def pizzatoppings(self):
toppings = ['mushrooms', 'peppers', 'pepparoni', 'steak', 'walnuts', 'goat cheese', 'eggplant', 'garlic sauce'];
for s in toppings:
ul += "<li>"+str(s)+"</li>"
ul += "</ul>"
return ul
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试运行它时,我没有得到任何回溯,也没有任何反应。有谁知道为什么会这样?我知道这可能是一个微不足道的问题,但我已经搜索了答案,但找不到解决方案。谢谢!
你可以这样做:
def print_ul(elements):
print("<ul>")
for s in elements:
ul = "<li>" + str(s) + "</li>"
print(ul)
print("</ul>")
toppings = ['mushrooms', 'peppers', 'pepparoni', 'steak', 'walnuts', 'goat cheese', 'eggplant', 'garlic sauce'];
print_ul(toppings)
Run Code Online (Sandbox Code Playgroud)
您的原始代码存在一些问题:
更好的 (IMO) 解决方案是让函数生成 HTML 代码并打印结果:
def ulify(elements):
string = "<ul>\n"
for s in elements:
string += "<li>" + str(s) + "</li>\n"
string += "</ul>"
return string
print(ulify(['thing', 'other_thing']))
Run Code Online (Sandbox Code Playgroud)
您还可以阅读有关列表推导式的信息。这将使列表的工作更简单:
def ulify(elements):
string = "<ul>\n"
string += "\n".join(["<li>" + str(s) + "</li>" for s in elements])
string += "\n</ul>"
return string
Run Code Online (Sandbox Code Playgroud)