【自然语言处理】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.mzph.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模块如何驱动智能家居革命。 设备互…

【探索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 …

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 …

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;是一个开放源代码的版本控制系统…

数字孪生与智慧交通的融合发展:推动交通行业数字化转型,构建智慧城市新生态

随着信息技术的快速发展和城市化进程的深入推进&#xff0c;交通行业正面临着前所未有的机遇与挑战。传统的交通管理模式已难以满足日益增长的交通需求&#xff0c;而数字化转型则成为了推动交通行业创新发展的必由之路。数字孪生技术作为一种前沿的信息技术手段&#xff0c;为…

基于springboot+vue的公寓报修管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

每天的三哥牌小鸡腿没了

查看印度基金(164824)公告&#xff0c;从2024年2月28日起&#xff0c;暂停印度基金的申购&#xff0c;限额100块的一拖七套利告一段落。这意味着看好印度股市的国内投资者&#xff0c;以后只能通过在场内买入获得份额。 关于暂停申购的原因&#xff0c;官方说是为保护基金持有…

重磅!交通领域顶级会议TRB会议将进行重大改革

美国交通研究委员会年会&#xff08;Transportation Research Board annual meeting,以下简称TRB会议&#xff09;是由美国交通研究委员会举办的交通领域的国际顶级会议。该会议每年举办一次&#xff0c;在华盛顿特区召开。TRB会议是交通研究领域知名度最高的学术会议之一&…

安装 node 错误的配置环境变量之后使用 npm 报错

安装 node 错误的配置环境变量之后使用 npm 报错 node:internal/modules/cjs/loader:1147 throw err; ^ Error: Cannot find module ‘F:\ACodeTools\Node\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js’ at Module._resolveFilename (node:internal/modules/cjs/loa…

基于springboot实现企业员工绩效考评系统项目【项目源码+论文说明】

基于springboot实现企业员工绩效考评系统演示 摘要 时代的变化速度实在超出人类的所料&#xff0c;21世纪&#xff0c;计算机已经发展到各行各业&#xff0c;各个地区&#xff0c;它的载体媒介-计算机&#xff0c;大众称之为的电脑&#xff0c;是一种特高速的科学仪器&#xf…