偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一日一技:如何正確處理多行字符串的縮進(jìn)問題

開發(fā) 前端
在Python里面,三引號(hào)表示多行字符串。在一對(duì)三引號(hào)之間的所有字符都是這個(gè)多行字符串的一部分。包括你在Python里面習(xí)以為常的縮進(jìn)。

有時(shí)候,我們需要使用多行字符串配合format格式化函數(shù)來生成Markdown文本。例如,我現(xiàn)在開發(fā)了一個(gè)AI對(duì)話機(jī)器人,我發(fā)送一個(gè)txt文件過去,他首先幫我總結(jié)整個(gè)文件的內(nèi)容,然后以問答的形式列出10個(gè)要點(diǎn)。

你的代碼可能是這樣寫的:

def bot(text):
    summary = summary_text_by_gpt(text)
    qa = get_qa_by_gpt(text)

    output = '''
    ## 文本總結(jié)

    {summary}

    ## 核心問答

    {qa}
    '''
    return output

返回Markdown以后,通過前端渲染出正常的文本。

但如果你直接這樣寫,你會(huì)發(fā)現(xiàn)Markdown的渲染好像出問題了。如下圖所示:

圖片圖片

為什么會(huì)出現(xiàn)這個(gè)問題呢?其實(shí)很簡(jiǎn)單,因?yàn)槟愕腗arkdown文本有問題。我們來看一下正常的Markdown長(zhǎng)什么樣:

圖片圖片

你上下對(duì)比看看,會(huì)不會(huì)覺得非常疑惑,這明明就是一樣的,為什么下面可以上面不行?實(shí)際上,他們關(guān)鍵的差異,就在于你看不到的空格:

圖片圖片

在Python里面,三引號(hào)表示多行字符串。在一對(duì)三引號(hào)之間的所有字符都是這個(gè)多行字符串的一部分。包括你在Python里面習(xí)以為常的縮進(jìn)。

我們使用repr命令來看看這個(gè)有縮進(jìn)的output實(shí)際上長(zhǎng)什么樣:

圖片圖片

注意到了嗎,在函數(shù)里面定義多行字符串時(shí),很容易把縮進(jìn)帶進(jìn)來,導(dǎo)致##前面有空格,于是這就變成了不合法的Markdown。

要解決這個(gè)問題其實(shí)也非常簡(jiǎn)單,在多行字符串定義的時(shí)候,不要縮進(jìn):

圖片圖片

但這樣你有沒有覺得代碼變得非常丑?參差不齊。如果你定義多行字符串時(shí)還是在更深的縮進(jìn)里面,代碼會(huì)更難看,如下圖所示:

圖片圖片

這可太丑了,要是被那些不喜歡Python縮進(jìn)的人看到,又要被調(diào)侃了。

其實(shí)要解決這個(gè)問題非常簡(jiǎn)單,使用Python自帶的textwrap模塊中的dedent就可以了。它可以自動(dòng)移除多行字符串每一行的前導(dǎo)空格。如下圖所示:

圖片圖片

這樣一來,既兼顧了多行字符串的美觀,又不會(huì)因?yàn)榭s進(jìn)導(dǎo)致Markdown渲染失敗。

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2024-01-29 00:45:36

跨域后端接口

2022-11-06 21:04:49

字符串字段參數(shù)

2025-06-13 01:15:00

正則表達(dá)式大模型

2024-07-30 08:16:18

Python代碼工具

2021-05-08 19:33:51

移除字符零寬

2021-10-20 20:02:47

字符變量函數(shù)

2021-09-14 21:29:01

項(xiàng)目環(huán)境變量

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2022-06-20 19:37:59

Python字符串HTML

2021-10-15 21:08:31

PandasExcel對(duì)象

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2022-03-12 20:38:14

網(wǎng)頁Python測(cè)試

2025-05-28 03:15:00

Scrapy數(shù)據(jù)sleep

2020-12-04 06:39:25

爬蟲網(wǎng)頁

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-07-30 08:11:16

2024-11-11 00:38:13

Mypy靜態(tài)類型

2022-08-26 09:34:19

單元測(cè)試代碼項(xiàng)目

2022-03-07 09:14:04

Selenium鼠標(biāo)元素
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)