欢迎访问宙启技术站
智能推送

如何在Python中使用HtmlFormatter()函数生成美观的HTML代码

发布时间:2024-01-07 18:50:24

在Python中,可以使用HtmlFormatter()函数来生成美观的HTML代码。HtmlFormatter()函数是pygments模块中的一个类,用于格式化代码的HTML输出。pygments是一个语法高亮显示库,支持多种编程语言。

下面是一个使用HtmlFormatter()函数生成美观的HTML代码的示例:

首先,我们需要安装pygments模块,可以使用以下命令进行安装:

pip install pygments

接下来,我们可以创建一个Python脚本,示例代码如下:

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter

# 定义要高亮显示的代码
code = """
def fibonacci(n):
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    else:
        fib = [0, 1]
        while len(fib) < n:
            fib.append(fib[-1] + fib[-2])
        return fib

n = int(input("请输入一个正整数:"))
result = fibonacci(n)
print("斐波那契数列的前", n, "项是:", result)
"""

# 指定代码的编程语言为Python
lexer = PythonLexer()

# 使用HtmlFormatter()函数生成HTML代码
formatter = HtmlFormatter(linenos=True, cssclass="code")
html_code = highlight(code, lexer, formatter)

# 打印生成的HTML代码
print(html_code)

在示例中,我们定义了一个计算斐波那契数列的函数,并使用input()函数来获取用户输入的正整数。然后,我们使用HtmlFormatter()函数生成美观的HTML代码。HtmlFormatter()函数接受一些可选参数,如是否显示行号linenos,代码块的样式类名cssclass等。最后,我们使用highlight()函数将代码高亮显示,并生成HTML代码。

运行以上代码,将会输出生成的HTML代码,如下所示:

<div class="code">
<table class="highlighttable">
<tr>
<td class="linenos">         <div class="linenodiv"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14</pre></div></td>
<td class="code"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
    <span class="k">if</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
        <span class="k">return</span> <span class="p">[]</span>
    <span class="k">elif</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
        <span class="k">return</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span>
    <span class="k">elif</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
        <span class="k">return</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="n">fib</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span>
        <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="n">fib</span><span class="p">)</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">:</span>
            <span class="n">fib</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">fib</span><span class="o">[-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">fib</span><span class="o">[-</span><span class="mi">2</span><span class="p">])</span>
        <span class="k">return</span> <span class="n">fib</span>

<span class="n">n</span> <span class="o">=</span> <span class="n">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s">"请输入一个正整数:"</span><span class="p">))</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s">"斐波那契数列的前"</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="s">"项是:"</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span>
</pre></div>
</td>
</tr>
</table>
</div>

生成的HTML代码采用了表格的形式进行排版,包含了行号和代码内容。你可以将这段代码粘贴到任何HTML文档中,就能够将代码以美观的样式展示在网页上了。

总结一下,使用HtmlFormatter()函数可以帮助我们生成美观的HTML代码,使代码高亮显示。通过设置不同的参数,我们可以根据自己的需求来调整代码的显示效果。