AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-05-29 08:55:01 125觀看
導讀有時候,我們需要使用多行字符串配合format格式化函數來生成Markdown文本。例如,我現在開發了一個AI對話機器人,我發送一個txt文件過去,他首先幫我總結整個文件的內容,然后以問答的形式列出10個要點。你的代碼可能是這樣寫

有時候,我們需要使用多行字符串配合format格式化函數來生成Markdown文本。例如,我現在開發了一個AI對話機器人,我發送一個txt文件過去,他首先幫我總結整個文件的內容,然后以問答的形式列出10個要點。MNG28資訊網——每日最新資訊28at.com

你的代碼可能是這樣寫的:MNG28資訊網——每日最新資訊28at.com

def bot(text):    summary = summary_text_by_gpt(text)    qa = get_qa_by_gpt(text)    output = '''    ## 文本總結    {summary}    ## 核心問答    {qa}    '''    return output

返回Markdown以后,通過前端渲染出正常的文本。MNG28資訊網——每日最新資訊28at.com

但如果你直接這樣寫,你會發現Markdown的渲染好像出問題了。如下圖所示:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

為什么會出現這個問題呢?其實很簡單,因為你的Markdown文本有問題。我們來看一下正常的Markdown長什么樣:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

你上下對比看看,會不會覺得非常疑惑,這明明就是一樣的,為什么下面可以上面不行?實際上,他們關鍵的差異,就在于你看不到的空格:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

在Python里面,三引號表示多行字符串。在一對三引號之間的所有字符都是這個多行字符串的一部分。包括你在Python里面習以為常的縮進。MNG28資訊網——每日最新資訊28at.com

我們使用repr命令來看看這個有縮進的output實際上長什么樣:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

注意到了嗎,在函數里面定義多行字符串時,很容易把縮進帶進來,導致##前面有空格,于是這就變成了不合法的Markdown。MNG28資訊網——每日最新資訊28at.com

要解決這個問題其實也非常簡單,在多行字符串定義的時候,不要縮進:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

但這樣你有沒有覺得代碼變得非常丑?參差不齊。如果你定義多行字符串時還是在更深的縮進里面,代碼會更難看,如下圖所示:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

這可太丑了,要是被那些不喜歡Python縮進的人看到,又要被調侃了。MNG28資訊網——每日最新資訊28at.com

其實要解決這個問題非常簡單,使用Python自帶的textwrap模塊中的dedent就可以了。它可以自動移除多行字符串每一行的前導空格。如下圖所示:MNG28資訊網——每日最新資訊28at.com

圖片圖片MNG28資訊網——每日最新資訊28at.com

這樣一來,既兼顧了多行字符串的美觀,又不會因為縮進導致Markdown渲染失敗。MNG28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-91356-0.html一日一技:如何正確處理多行字符串的縮進問題

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: SpringBoot的自動裝配,你學會了嗎?

下一篇: 關于 Python 的 12 個異常處理技巧

標簽:
  • 熱門焦點
Top