【自然語言處理】NLP入門(二):1、正則表達式與Python中的實現(2):字符串格式化輸出(%、format()、f-string)

文章目錄

  • 一、前言
  • 二、正則表達式與Python中的實現
    • 1.字符串構造
    • 2. 字符串截取
    • 3. 字符串格式化輸出
      • 3.1 %符號格式化字符串
        • 1. 一般形式
        • 2. 常用格式字符
        • 3. 最小寬度和精度
        • 4. 進位制和科學計數法
        • 5. 多個對象的格式化輸出
        • 6. 典例
      • 3.2 format()方法格式化字符串
        • 1. 一般形式
        • 2. 參數傳遞
        • 3. 格式控制標記
        • 4. 對齊方式
      • 3.3 f-string 格式化字符串

一、前言

??自然語言處理涉及字符串構造、截取與格式化輸出等基礎操作,本文將介紹使用%、format()、f-string方法格式化字符串。

二、正則表達式與Python中的實現

1.字符串構造

2. 字符串截取

【自然語言處理】NLP入門(一):1、正則表達式與Python中的實現(1):字符串構造、字符串截取

3. 字符串格式化輸出

??字符串格式化輸出是將變量或常量的值按照特定的格式插入到字符串中,形成新的字符串。字符串格式化涉及到兩個概念:格式和格式化

  • 格式化:把變量(常量)的值按照某種模式進行表征并嵌入到一個字符串中,形成新的字符串。
  • 格式:指的是所采用的這種模式,在格式化字符串時會使用特定的格式規則來決定如何將變量或常量的值嵌入到目標字符串中。在這里插入圖片描述
    • 字符串格式化輸出可以使用不同的格式規則,如占位符、格式化指令、模板字符串等方式來指定變量或常量嵌入到目標字符串中的方式。
  • 3 種模式
    • (1)%
    • (2)format()
    • (3)f-string

3.1 %符號格式化字符串

??%符號格式化字符串是一種傳統的格式化方法,通過在字符串中使用占位符 % 和格式化字符串中的參數來實現格式化輸出。

1. 一般形式

??字符串格式化的一般形式為:”wwww %rrrrr www”%x,其中:
在這里插入圖片描述

2. 常用格式字符

??常用的格式字符及其含義如下:

格式字符說明
%c格式化字符或編碼
%s格式化字符串
%d, %i格式化整數
%u格式化無符號整數
%%輸出字符 %
%o格式化八進制數
%x格式化十六進制數
%f, %F格式化浮點數,可指定小數位數
%e, %E用科學計數法格式化浮點數
%g, %G根據值的大小采用科學計數法或者浮點數形式格式化浮點數
3. 最小寬度和精度
  • 最小寬度是轉換后的值所保留的最小字符個數。
  • 精度(對于數字來說)則是結果中應該包含的小數位數。
'%f' % 3.1416
  • 輸出 ‘3.141600’,單獨的%f默認保留6位小數
'%.2f' % 3.1416
  • 輸出 ‘3.14’,指定保留2位小數
'%6.2f' % 3.1416
  • 輸出 ’ 3.14’,保留2位小數,寬度為6,空位填空格
'%07.2f' % 3.1416
  • 輸出 ‘0003.14’,保留2位小數,寬度為7,空位填0
'%+07.2f' % 3.1416
  • 輸出 ‘+003.14’,保留2位小數,寬度為7,正數加正號,空位填0
'%-7.2f' % -3.1416
  • 輸出 '-3.14 ',保留2位小數,寬度為7,空位填空格,左對齊輸出

在這里插入圖片描述

4. 進位制和科學計數法

??可以將一個數轉換成不同的進位制,也可按科學計數法進行轉換。

a = 123456
'%o' % a  # 輸出 '361100',轉換為八進制串
'%x' % a  # 輸出 '1e240',轉換為十六進制串
'%e' % 12345.678  # 輸出 '1.234568e+04',轉換為科學計數法串
5. 多個對象的格式化輸出

??可以一次轉換多個對象,這些對象表示成一個元組形式,位置與格式化字符一一對應。

'%s, %4d, %s' % (3.456727, 89, 'Lily')  
  • 輸出 ‘3.46, 89, Lily’
6. 典例
x = 10
name = 'Lily'
age = 18
pi = 3.1415926# 常規示例
print("Value of x is %d" % x)  # 輸出 'Value of x is 10'
print("My name is %s, I am %d years old" % (name, age))  # 輸出 'My name is Lily, I am 18 years old'# 格式化整數示例
print("Decimal: %d, Octal: %o, Hexadecimal: %x" % (x, x, x))  # 輸出 'Decimal: 10, Octal: 12, Hexadecimal: a'# 格式化浮點數示例
print("Pi value with default precision: %f" % pi)  # 輸出 'Pi value with default precision: 3.141593'
print("Pi value with 2 decimal places: %.2f" % pi)  # 輸出 'Pi value with 2 decimal places: 3.14'# 格式化科學計數法示例
print("Pi value in scientific notation: %e" % pi)  # 輸出 'Pi value in scientific notation: 3.141593e+00'# 最小寬度和精度示例
print("Width 8: %8d" % x)  # 輸出 'Width 8:       10'
print("Width 8 with leading zeros: %08d" % x)  # 輸出 'Width 8 with leading zeros: 00000010'
print("Pi with width 10 and precision 3: %10.3f" % pi)  # 輸出 'Pi with width 10 and precision 3:      3.142'# 對正數加正號示例
print("Positive number with sign: %+d" % x)  # 輸出 'Positive number with sign: +10'# 左對齊輸出示例
print("Left-aligned string: %-10s" % name)  # 輸出 'Left-aligned string: Lily      '# 其他進制示例
print("Binary: %b" % x)  # 輸出 'Binary: 1010'
print("Octal: %#o" % x)  # 輸出 'Octal: 0o12'
print("Hexadecimal: %#x" % x)  # 輸出 'Hexadecimal: 0xa'# 字符串格式化拓展示例
print("Value of x is {}, My name is {}, I am {} years old".format(x, name, age))  # 使用format()方法進行字符串格式化
print(f"Value of x is {x}, My name is {name}, I am {age} years old")  # 使用f-string進行字符串格式化

??%符號格式化字符串方法在早期版本的Python中廣泛使用,但在Python 3中,推薦使用format()方法或f-string進行字符串的格式化輸出。

3.2 format()方法格式化字符串

??format()方法是一種更加靈活和易讀的字符串格式化方法,它使用 {} 占位符和format()方法中的參數來進行格式化。

1. 一般形式
'www{<參數序號>: <格式控制標記>}www'.format(x)

其中,{}用來標記格式化的位置,<參數序號>指定傳遞的參數序號,<格式控制標記>用于控制格式化的方式。

name = 'Bob'
age = 25
formatted_string = "Name: {}, Age: {}".format(name, age)
print(formatted_string)  # 輸出: Name: Bob, Age: 25

??在format()方法中,使用 {} 占位符指定插入變量的位置,可以在占位符中指定參數的順序,也可以使用索引指定參數的順序。

formatted_string = "Name: {1}, Age: {0}".format(age, name)
print(formatted_string)  # 輸出: Name: Bob, Age: 25

在這里插入圖片描述

2. 參數傳遞

??下述代碼均輸出:‘我叫張清,今年18歲’

  • 可以根據位置來傳遞參數;
'我叫{},今年{}歲'.format('張清',18)
  • 也可以通過索引值來引用位置參數,參數索引從0開始
'我叫{0},今年{1}歲'.format('張清',18)
'我叫{1},今年{0}歲'.format(18, '張清')
  • 還可以使用序列,通過序列參數的位置索引和序列中元素索引來引用相應值
my = ['張清', 18]
'我叫{0[0]},今年{0[1]}歲'.format(my)
  • 同時也可以直接將序列解包,通過位置依次將序列中的元素傳遞到目標字符串中
'我叫{},今年{}歲'.format(*my)
  • 另外還支持使用關鍵參數的形式,可以通過關鍵字來指定參數的值。例如:
'我叫{name},今年{age}歲'.format(name='張清', age=18)
  • 也可用**字典名的形式將字典中的元素作為參數
my = {'name': '張清', 'age': 18}
'我叫{name},今年{age}歲'.format(**my)

在這里插入圖片描述

3. 格式控制標記

??format()方法還支持一些格式控制標記,比如進位制、千分位格式化、對齊方式等。

'{0:.2f}'.format(2/3)  # 保留兩位小數
  • 輸出:‘0.67’
'{0:b}'.format(8)      # 二進制
  • 輸出:‘1000’
'{0:o}'.format(8)      # 八進制
  • 輸出:‘10’
'{0:x}'.format(18)     # 十六進制
  • 輸出:‘12’
'{:,}'.format(1234567890)  # 千分位格式化
  • 輸出:‘1,234,567,890’

在這里插入圖片描述

4. 對齊方式
'{0:*>10}'.format(18)  # 右對齊
  • 輸出:‘********18’
'{0:*<10}'.format(18)  # 左對齊
  • 輸出:‘18********’
'{0:*^10}'.format(18)  # 居中對齊
  • 輸出:‘18
'{0:*=10}'.format(-18)  # *放在-和18中間
  • 輸出:‘-*******18’
'{0:_},{0:#x}'.format(9999)  # _作為分隔符
  • 輸出:‘9_999,0x270f’

在這里插入圖片描述

3.3 f-string 格式化字符串

??Python 3.6及以上版本引入了 f-string,它是一種在字符串前加上 fF,在字符串中直接使用變量名或表達式進行格式化的方法。

name = 'Charlie'
age = 20
formatted_string = f"Name: {name}, Age: {age}"
print(formatted_string)  
  • 輸出: Name: Charlie, Age: 20

??字符串格式化輸出在實際編程中非常常用,能夠使代碼更加清晰、易讀,并且可以靈活地處理不同類型的數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716915.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716915.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716915.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

51單片機-(中斷系統)

51單片機-&#xff08;中斷系統&#xff09; 了解51單片機中斷系統、中斷源、中斷響應條件和優先級等&#xff0c;通過外部中斷0實現按鍵控制LED亮滅為例理解中斷工作原理和編程實現過程。 1.中斷系統結構 89C51/52的中斷系統有5個中斷源 &#xff0c;2個優先級&#xff0c;…

WiFi模塊引領智能家居革命:連接未來的生活

隨著科技的快速發展&#xff0c;智能家居正成為現代生活的一部分&#xff0c;極大地改變了我們與家庭環境互動的方式。其中&#xff0c;WiFi模塊作為關鍵的連接技術&#xff0c;在推動智能家居革命中發揮著不可忽視的作用。本文將深入探討WiFi模塊如何驅動智能家居革命。 設備互…

1027 打印沙漏

本題要求你寫個程序把給定的符號打印成沙漏的形狀。例如給定17個“*”&#xff0c;要求按下列格式打印 ***** *** * *** ***** 所謂“沙漏形狀”&#xff0c;是指每行輸出奇數個符號&#xff1b;各行符號中心對齊&#xff1b;相鄰兩行符號數差2&#xff1b;符號數先從大到…

多線程:線程通信

線程通信 什么是線程通信 當多個線程共同操作共享的資源時&#xff0c;線程間通過某種方式互相告知自己的的狀態&#xff0c;以相互協調&#xff0c;并避免無效的資源爭奪。 線程通信的常見模型&#xff08;生產者與消費者模型&#xff09; 生產者線程負責生產數據消費者線…

對抽象工廠模式的理解

目錄 1 背景1.1 題目描述1.2 輸入描述1.3 輸出描述1.4 輸入示例1.5 輸出示例 2 抽象工廠模式3 思考3.1 我的實現3.2 什么時候用抽象工廠模式&#xff1f;&#xff08;怎么用才是合適的&#xff1f;&#xff09;3.3 [更好的例子](https://refactoringguru.cn/design-patterns/ab…

【探索Linux】—— 強大的命令行工具 P.24(網絡基礎)

閱讀導航 引言一、計算機網絡背景1. 網絡發展歷史 二、認識 "協議"1. 網絡協議概念2. 網絡協議初識&#xff08;1&#xff09;協議分層&#xff08;2&#xff09;OSI參考模型&#xff08;Open Systems Interconnection Reference Model&#xff09;&#xff08;3&…

NoSQL--1.虛擬機網絡配置

目錄 1.初識NoSQL 1.1 NoSQL之虛擬機網絡配置 1.1.1 首先&#xff0c;導入預先配置好的NoSQL版本到VMware Workstation中 1.1.2 開啟虛擬機操作&#xff1a; 1.1.2.1 點擊開啟虛擬機&#xff1a; 1.1.2.2 默認選擇回車CentOS Linux&#xff08;3.10.0-1127.e17.x86_64) 7 …

cobalt strike釣魚lnk報錯:無法連接到遠程服務器

筆者在學習 cobalt strike 制作釣魚文件時發現多次失敗&#xff0c;在 win10 虛擬機的 powershell 的多次排查后發現這樣一個報錯&#xff1a; 使用“1”個參數調用“DownloadString”時發生異常:“無法連接到遠程服務器“ 經過多次排查后發現問題出在 cs 的 team server上&…

解決:Glide 在回調中再次加載圖片報錯

一、問題說明 Glide 加載圖片時監聽了回調&#xff0c;并在失敗時再次加載其它圖片后報錯。 代碼&#xff1a; Glide.with(mContext).load(imgTeacher).listener(new RequestListener<Drawable>() {Overridepublic boolean onLoadFailed(Nullable GlideException e, O…

MCU 串口接收環形緩沖區的實現

環形緩沖區 1. 環形緩沖區的特性 1.先進先出 2. 當緩沖區被使用完&#xff0c;且又有新的數據需要存儲時&#xff0c;丟掉歷史最久的數據&#xff0c;保存最新的數據 現實中的存儲介質都是線性的&#xff0c;因此我們需要做一下處理&#xff0c;才能在功能上實現環形緩沖區 …

[計算機網絡]--I/O多路轉接之poll和epoll

前言 作者&#xff1a;小蝸牛向前沖 名言&#xff1a;我可以接受失敗&#xff0c;但我不能接受放棄 如果覺的博主的文章還不錯的話&#xff0c;還請點贊&#xff0c;收藏&#xff0c;關注&#x1f440;支持博主。如果發現有問題的地方歡迎?大家在評論區指正 目錄 一、poll函…

web漏洞與規避

文章目錄 一、XSS 跨站腳本攻擊1.1 XSS攻擊的主要類型反射型XSS存儲型XSSDOM型XSS 1.2 前端開發如何應對XSS 二、CSRF 跨站請求偽造2.1 CSRF例子2.2 前端開發如何應對CSRF 三、SQL 注入3.1 前端如何防御SQL注入 四、前端如何使用CSP 一、XSS 跨站腳本攻擊 攻擊者通過在受害者的…

stm32學習筆記:IIC通信(未完)

概述 第一塊&#xff1a;介紹協議規則&#xff0c;然后用軟件模擬的形式來實現協議。 第二塊&#xff1a;介紹STM32的iic外設&#xff0c;然后用硬件來實現協議。 程序一現象&#xff1a;通過軟件I2C通信&#xff0c;對MPU6050芯片內部的寄存器進行讀寫&#xff0c;寫入到配…

【Synchronized同步原理】

Synchronized同步原理 1. synchronized的使用&#xff1f;2. 如何保證線程安全的&#xff1f;3.可重入原理&#xff08;加鎖次數計數器&#xff09;4. 原子性和可見性(順序性) 1. synchronized的使用&#xff1f; 對象鎖方法鎖類鎖 2. 如何保證線程安全的&#xff1f; publi…

關于數據提交上傳服務端的數據類型以及項目打包上線的流程

1 請求頭的類型&#xff1a; content-type&#xff1b; 01: application/json 數據以json格式請求&#xff1a;{"key":"value"} 02: application/x-www.form-urlencoded from表單的數據格式 name"zs"&age12 03 mutipart/form-data…

重學SpringBoot3-自動配置機制

重學SpringBoot3-自動配置機制 引言Spring Boot 自動配置原理示例&#xff1a;Spring Boot Web 自動配置深入理解總結相關閱讀 引言 Spring Boot 的自動配置是其最強大的特性之一&#xff0c;它允許開發者通過最少的配置實現應用程序的快速開發和部署。這一切都得益于 Spring …

飛槳(PaddlePaddle)模型保存與加載教程

文章目錄 飛槳&#xff08;PaddlePaddle&#xff09;模型保存與加載教程1. 概述2. 訓練調優場景2.1 保存動態圖模型2.2 加載動態圖模型 3. 推理部署場景3.1 使用基礎API 4. 其他場景4.1 舊版本格式兼容載入4.2 靜態圖模型的保存與加載 5. 總結 飛槳&#xff08;PaddlePaddle&am…

OmniPlan Pro mac版:簡單、智能,項目管理新選擇!

OmniPlan Pro是一款功能強大的項目管理軟件&#xff0c;它以其直觀的用戶界面和豐富的功能&#xff0c;幫助用戶輕松管理各種復雜的項目。無論是個人任務還是團隊協作&#xff0c;OmniPlan Pro都能提供全面的解決方案&#xff0c;讓項目管理變得更加簡單高效。 OmniPlan Pro軟…

從0開始回顧Mysql --- MySQL初體驗

大白話從0開始回顧MySQL&#xff0c;去除了一些繁瑣的操作的演示以及內容&#xff0c;如MySQL安裝等&#xff0c;本篇文章適合復習MySQL語法&#xff0c;學習MySQL語句&#xff0c;對MySQL不太熟練的同學&#xff0c;希望對大家有一些幫助。 MySQL初體驗 首先&#xff0c;我將…

如何在Window系統部署VisualSVN服務并結合cpolar實現無公網ip遠程訪問

文章目錄 前言1. VisualSVN安裝與配置2. VisualSVN Server管理界面配置3. 安裝cpolar內網穿透3.1 注冊賬號3.2 下載cpolar客戶端3.3 登錄cpolar web ui管理界面3.4 創建公網地址 4. 固定公網地址訪問 前言 SVN 是 subversion 的縮寫&#xff0c;是一個開放源代碼的版本控制系統…