Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输出HTML无序列表python_Python_Html_String - Fatal编程技术网

输出HTML无序列表python

输出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 += "<

我试图用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
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) 打印(“
    ”) 配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’]; 印刷(浇头)
    您的原始代码存在一些问题:

    • 你没有调用这个函数,难怪它什么都没做
    • 即使您这样做了,函数实际上并没有打印任何内容,它只是返回了一些值
    • 该函数实际上没有参数,因此根本不可重用
    更好的(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']))
    
    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) 打印(“
    ”) 配料=[‘蘑菇’、‘辣椒’、‘佩帕罗尼’、‘牛排’、‘核桃’、‘山羊奶酪’、‘茄子’、‘大蒜酱’]; 印刷(浇头)
    您的原始代码存在一些问题:

    • 你没有调用这个函数,难怪它什么都没做
    • 即使您这样做了,函数实际上并没有打印任何内容,它只是返回了一些值
    • 该函数实际上没有参数,因此根本不可重用
    更好的(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']))
    
    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
    
    • 蘑菇
    • 辣椒
    • 佩帕罗尼