前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)

【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)

作者头像
Qomolangma
发布2024-07-30 12:31:16
990
发布2024-07-30 12:31:16
举报
文章被收录于专栏:自然语言处理深度学习

一、前言

  自然语言处理涉及字符串构造、截取与格式化输出等基础操作,本文将介绍使用%、format()、f-string方法格式化字符串。

二、正则表达式与Python中的实现

1.字符串构造

2. 字符串截取

【自然语言处理】NLP入门(一):1、正则表达式与Python中的实现(1):字符串构造、字符串截取

3. 字符串格式化输出

  字符串格式化输出是将变量或常量的值按照特定的格式插入到字符串中,形成新的字符串。字符串格式化涉及到两个概念:格式和格式化

  • 格式化:把变量(常量)的值按照某种模式进行表征并嵌入到一个字符串中,形成新的字符串。
  • 格式:指的是所采用的这种模式,在格式化字符串时会使用特定的格式规则来决定如何将变量或常量的值嵌入到目标字符串中。
代码语言:txt
复制
- 字符串格式化输出可以使用不同的格式规则,如占位符、格式化指令、模板字符串等方式来指定变量或常量嵌入到目标字符串中的方式。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. 最小宽度和精度
  • 最小宽度是转换后的值所保留的最小字符个数。
  • 精度(对于数字来说)则是结果中应该包含的小数位数。
代码语言:javascript
复制
'%f' % 3.1416
  • 输出 ‘3.141600’,单独的%f默认保留6位小数
代码语言:javascript
复制
'%.2f' % 3.1416
  • 输出 ‘3.14’,指定保留2位小数
代码语言:javascript
复制
'%6.2f' % 3.1416
  • 输出 ’ 3.14’,保留2位小数,宽度为6,空位填空格
代码语言:javascript
复制
'%07.2f' % 3.1416
  • 输出 ‘0003.14’,保留2位小数,宽度为7,空位填0
代码语言:javascript
复制
'%+07.2f' % 3.1416
  • 输出 ‘+003.14’,保留2位小数,宽度为7,正数加正号,空位填0
代码语言:javascript
复制
'%-7.2f' % -3.1416
  • 输出 '-3.14 ',保留2位小数,宽度为7,空位填空格,左对齐输出
4. 进位制和科学计数法

  可以将一个数转换成不同的进位制,也可按科学计数法进行转换。

代码语言:javascript
复制
a = 123456
'%o' % a  # 输出 '361100',转换为八进制串
'%x' % a  # 输出 '1e240',转换为十六进制串
'%e' % 12345.678  # 输出 '1.234568e+04',转换为科学计数法串
5. 多个对象的格式化输出

  可以一次转换多个对象,这些对象表示成一个元组形式,位置与格式化字符一一对应。

代码语言:javascript
复制
'%s, %4d, %s' % (3.456727, 89, 'Lily')  
  • 输出 ‘3.46, 89, Lily’
6. 典例
代码语言:javascript
复制
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. 一般形式
代码语言:javascript
复制
'www{<参数序号>: <格式控制标记>}www'.format(x)

其中,{}用来标记格式化的位置,<参数序号>指定传递的参数序号,<格式控制标记>用于控制格式化的方式。

代码语言:javascript
复制
name = 'Bob'
age = 25
formatted_string = "Name: {}, Age: {}".format(name, age)
print(formatted_string)  # 输出: Name: Bob, Age: 25

  在format()方法中,使用 {} 占位符指定插入变量的位置,可以在占位符中指定参数的顺序,也可以使用索引指定参数的顺序。

代码语言:javascript
复制
formatted_string = "Name: {1}, Age: {0}".format(age, name)
print(formatted_string)  # 输出: Name: Bob, Age: 25
2. 参数传递

  下述代码均输出:‘我叫张清,今年18岁’

  • 可以根据位置来传递参数;
代码语言:javascript
复制
'我叫{},今年{}岁'.format('张清',18)
  • 也可以通过索引值来引用位置参数,参数索引从0开始
代码语言:javascript
复制
'我叫{0},今年{1}岁'.format('张清',18)
代码语言:javascript
复制
'我叫{1},今年{0}岁'.format(18, '张清')
  • 还可以使用序列,通过序列参数的位置索引和序列中元素索引来引用相应值
代码语言:javascript
复制
my = ['张清', 18]
'我叫{0[0]},今年{0[1]}岁'.format(my)
  • 同时也可以直接将序列解包,通过位置依次将序列中的元素传递到目标字符串中
代码语言:javascript
复制
'我叫{},今年{}岁'.format(*my)
  • 另外还支持使用关键参数的形式,可以通过关键字来指定参数的值。例如:
代码语言:javascript
复制
'我叫{name},今年{age}岁'.format(name='张清', age=18)
  • 也可用**字典名的形式将字典中的元素作为参数
代码语言:javascript
复制
my = {'name': '张清', 'age': 18}
'我叫{name},今年{age}岁'.format(**my)
3. 格式控制标记

format()方法还支持一些格式控制标记,比如进位制、千分位格式化、对齐方式等。

代码语言:javascript
复制
'{0:.2f}'.format(2/3)  # 保留两位小数
  • 输出:‘0.67’
代码语言:javascript
复制
'{0:b}'.format(8)      # 二进制
  • 输出:‘1000’
代码语言:javascript
复制
'{0:o}'.format(8)      # 八进制
  • 输出:‘10’
代码语言:javascript
复制
'{0:x}'.format(18)     # 十六进制
  • 输出:‘12’
代码语言:javascript
复制
'{:,}'.format(1234567890)  # 千分位格式化
  • 输出:‘1,234,567,890’
4. 对齐方式
代码语言:javascript
复制
'{0:*>10}'.format(18)  # 右对齐
  • 输出:‘********18’
代码语言:javascript
复制
'{0:*<10}'.format(18)  # 左对齐
  • 输出:‘18********’
代码语言:javascript
复制
'{0:*^10}'.format(18)  # 居中对齐
  • 输出:‘18
代码语言:javascript
复制
'{0:*=10}'.format(-18)  # *放在-和18中间
  • 输出:‘-*******18’
代码语言:javascript
复制
'{0:_},{0:#x}'.format(9999)  # _作为分隔符
  • 输出:‘9_999,0x270f’
3.3 f-string 格式化字符串

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

代码语言:javascript
复制
name = 'Charlie'
age = 20
formatted_string = f"Name: {name}, Age: {age}"
print(formatted_string)  
  • 输出: Name: Charlie, Age: 20

  字符串格式化输出在实际编程中非常常用,能够使代码更加清晰、易读,并且可以灵活地处理不同类型的数据。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、正则表达式与Python中的实现
    • 1.字符串构造
      • 2. 字符串截取
        • 3. 字符串格式化输出
          • 3.1 %符号格式化字符串
          • 3.2 format()方法格式化字符串
          • 3.3 f-string 格式化字符串
      相关产品与服务
      NLP 服务
      NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档