输出HTML无序列表python
我试图用python编写一个函数,它将获取我定义的字符串列表,并将它们显示为单个字符串,即HTML无序列表。到目前为止,我的代码是:输出HTML无序列表python,python,html,string,Python,Html,String,我试图用python编写一个函数,它将获取我定义的字符串列表,并将它们显示为单个字符串,即HTML无序列表。到目前为止,我的代码是: def pizzatoppings(self): toppings = ['mushrooms', 'peppers', 'pepparoni', 'steak', 'walnuts', 'goat cheese', 'eggplant', 'garlic sauce']; for s in toppings: ul += "<
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
def比萨配料(自配):
配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’];
对于浇头中的s:
ul+=“”+str+“ ”
ul+=“”
返回ul
然而,当我试图运行这个程序时,我没有得到任何回溯,也没有发生任何事情。有人知道为什么会这样吗?我知道这可能是一个微不足道的问题,但我一直在寻找答案,却找不到解决办法。谢谢 你可以这样做:
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)
def打印(元素):
打印()
对于元素中的s:
ul=“- ”+str(s)+“
”
印刷品(ul)
打印(“
”)
配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’];
印刷(浇头)
您的原始代码存在一些问题:
- 你没有调用这个函数,难怪它什么都没做
- 即使您这样做了,函数实际上并没有打印任何内容,它只是返回了一些值
- 该函数实际上没有参数,因此根本不可重用
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']))
def ulify(元素):
string=“\n”
对于元素中的s:
字符串+=“- ”+str+“
\n”
字符串+=“
”
返回字符串
打印(ulify(['thing','other_thing']))
你也可以阅读有关。这将使使用列表变得更简单:
def ulify(elements):
string = "<ul>\n"
string += "\n".join(["<li>" + str(s) + "</li>" for s in elements])
string += "\n</ul>"
return string
def ulify(元素):
string=“\n”
字符串+=“\n”.join([“- ”+str(s)+“
”表示元素中的s])
字符串+=“\n
”
返回字符串
您可以这样做:
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)
def打印(元素):
打印()
对于元素中的s:
ul=“- ”+str(s)+“
”
印刷品(ul)
打印(“
”)
配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’];
印刷(浇头)
您的原始代码存在一些问题:
- 你没有调用这个函数,难怪它什么都没做
- 即使您这样做了,函数实际上并没有打印任何内容,它只是返回了一些值
- 该函数实际上没有参数,因此根本不可重用
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']))
def ulify(元素):
string=“\n”
对于元素中的s:
字符串+=“- ”+str+“
\n”
字符串+=“
”
返回字符串
打印(ulify(['thing','other_thing']))
你也可以阅读有关。这将使使用列表变得更简单:
def ulify(elements):
string = "<ul>\n"
string += "\n".join(["<li>" + str(s) + "</li>" for s in elements])
string += "\n</ul>"
return string
def ulify(元素):
string=“\n”
字符串+=“\n”.join([“- ”+str(s)+“
”表示元素中的s])
字符串+=“\n
”
返回字符串
看起来您正在尝试建立一个网站。为什么不使用模板引擎,比如Jinja2,而不是从函数中打印HTML片段呢?为此,您将需要一个pythonweb应用程序,它似乎是用一个web框架编写的。在这里,开始使用它很简单,Jinja是Flask的默认模板引擎
如果您只想生成静态HTML文件,我建议您这样做,它允许您生成静态HTML文件,无需在服务器上部署任何Python web应用程序即可托管这些文件。只需将生成的文件复制到主机,您就可以开始了
如果您仍然想打印一个HTML代码段,那么您的代码应该类似于Ealhad在其答案中发布的代码
此外,您的原始代码还包含一些问题:
def pizzatoppings(self):
# you don't need semicolons in Python
toppings = ['mushrooms', 'peppers', 'pepparoni', 'steak', 'walnuts', 'goat cheese', 'eggplant', 'garlic sauce']
# you need to initialize a "ul" variable
ul = "<ul>"
for s in toppings:
ul += "<li>"+str(s)+"</li>"
# following two lines where indented too much. In Python, indentation defines a block of code
ul += "</ul>"
return ul
def比萨配料(自配):
#Python中不需要分号
配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’]
#您需要初始化一个“ul”变量
ul=“”
对于浇头中的s:
ul+=“- ”+str+“
”
#以下两行缩进过多。在Python中,缩进定义了一个代码块
ul+=“
”
返回ul
看起来您正在尝试建立一个网站。为什么不使用模板引擎,比如Jinja2,而不是从函数中打印HTML片段呢?为此,您将需要一个pythonweb应用程序,它似乎是用一个web框架编写的。在这里,开始使用它很简单,Jinja是Flask的默认模板引擎
如果您只想生成静态HTML文件,我建议您这样做,它允许您生成静态HTML文件,无需在服务器上部署任何Python web应用程序即可托管这些文件。只需将生成的文件复制到主机,您就可以开始了
如果您仍然想打印一个HTML代码段,那么您的代码应该类似于Ealhad在其答案中发布的代码
此外,您的原始代码还包含一些问题:
def pizzatoppings(self):
# you don't need semicolons in Python
toppings = ['mushrooms', 'peppers', 'pepparoni', 'steak', 'walnuts', 'goat cheese', 'eggplant', 'garlic sauce']
# you need to initialize a "ul" variable
ul = "<ul>"
for s in toppings:
ul += "<li>"+str(s)+"</li>"
# following two lines where indented too much. In Python, indentation defines a block of code
ul += "</ul>"
return ul
def比萨配料(自配):
#Python中不需要分号
配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’]
#您需要初始化一个“ul”变量
ul=“”
对于浇头中的s:
ul+=“- ”+str+“
”
#以下两行缩进过多。在Python中,缩进定义了一个代码块
ul+=“
”
返回ul
我今天只是在工作中做这件事。以下是我的两行解决方案:
def example(elements):
return '<ul>\n' + '\n'.join(['<li>'.rjust(8) + name + '</li>' for name in elements]) + '\n</ul>'
def示例(元素):
返回'\n'+'\n'.join(['- '.rjust(8)+name+'
'表示元素中的name])+'\n
'
其中:
<ul>
<li>mushrooms</li>
<li>peppers</li>
<li>pepparoni</li>
<li>steak</li>
<li>walnuts</li>
<li>goat cheese</li>
<li>eggplant</li>
<li>garlic sauce</li>
</ul
- 蘑菇
- 辣椒
- 佩帕罗尼