字符串格式化

1. 什么是字符串格式化?

就是把字符串弄成⼀定的格式(往往就是留个位置,往里面填值)

这个位置往往是格式符、占位符。

2. 字符串常见的3种格式化方式

2.1 格式符 + % + 变量/表达式

2.2 f'{变量或表达式}' 也叫 f-strings 

2.3 字符串对象的 format() 方法来格式化字符串

3. 格式符 + % + 变量/表达式

3.1 常见的格式符

 

3.2 示例

复制代码
 1 """
 2 1. 准备数据
 3 2. 格式化符号输出数据
 4 """
 5 age = 18   # 整型
 6 name = 'Allen'  # 字符串类型
 7 weight = 75.5  # 浮点型
 8 stu_id = 1  # 整数
 9 stu_id2 = 1000  # 整数
10 
11 # 1. 今年我的年龄是x岁 -- 整数 %d
12 say = '今年我的年龄是%d岁'
13 print(say)  # 今年我的年龄是%d岁
14 
15 say = '今年我的年龄是%d岁' % age
16 print(say)  # 今年我的年龄是18岁
17 
18 # 2. 我的名字是x -- 字符串 %s
19 say = '我的名字是%s' % name
20 print(say)  # 我的名字是Allen
21 
22 # 3. 我的体重是x公斤 -- 浮点数 %f
23 say = '我的体重是%f公斤' % weight  # %f表示保留小数点后6位()即我的体重是75.500000公斤
24 print(say)  # 我的体重是75.500000公斤
25 say = '我的体重是%.3f公斤' % weight  # .3表示保留小数点后3位()即我的体重是75.500公斤
26 print(say)  # 我的体重是75.500公斤
27 
28 # 4. 我的学号是x -- %d
29 print('我的学号是%d' % stu_id)  # 我的学号是1
30 
31 # 不够3位,前面补0,超过3位是什么就是什么
32 # 4.1 我的学号是001
33 print('我的学号是%03d' % stu_id)   # 我的学号是001
34 print('我的学号是%03d' % stu_id2)  # 我的学号是1000
35 #  4.2 %06s,不足补的是空格
36 print("123456")
37 print("%06s" % "123")
38 # 格式化多个,按顺序写在()里面,用逗号隔开
39 # 5. 我的名字是x,今年x岁了
40 print('我的名字是%s,今年%d岁了' % (name, age))
41 # 5.1 我的名字是x,明年x岁了
42 print('我的名字是%s,明年%d岁了' % (name, age + 1))
43 
44 # 6. 我的名字是x,今年x岁了,体重x公斤,学号是x
45 print('我的名字是%s,今年%d岁了,体重%.2f公斤,学号是%06d' % (name, age, weight, stu_id))
复制代码

总结

1. 语法: 

  1个变量/表达式:  'xxxx格式符xxxx'  %  变量/表达式

       大于1个变量/表达式: 'xxxx格式符xx格式符xx'  %  (变量/表达式1,变量/表达式2,……)

2. %f格式符默认保留小数6位,可通过%.数字f控制保留的小数位数。eg:%.2f即保留2位小数

3. %06d:表示不足6位前面补零,其他是什么就是什么(左对齐)

4. %06s:表示不足6位前面补空格,其他是什么就是什么(右对齐)

1 print('我的学号是%03d' % stu_id)   # 我的学号是001
2 print('我的学号是%03d' % stu_id2)  # 我的学号是1000
3 #  4.2 %06s,不足补的是空格
4 print("123456")
5 print("%06s" % "123")

输出:

 5. 字符串长度为1时就是其他语言的字符(%c),因为python没有字符类型

# 7.字符串长度为1时就是其他语言的字符(%c),因为python没有字符类型
character = 'A'
formatted_character = "%c" % character
print(formatted_character)  # 输出 'A'

6. %s 可用代替%d,%f

复制代码
 1 '''
 2 %s 可用代替%d,%f
 3 '''
 4 
 5 name = 'Allen'  # 字符串
 6 age = 18  # 整型
 7 weight = 75.5  # 浮点型
 8 
 9 # 我的名字是x,今年x岁了,体重x公斤
10 print('我的名字是%s,今年%s岁了,体重%08s公斤' % (name, age, weight))  # 我的名字是Allen,今年18岁了,体重    75.5公斤
复制代码

7. %s 对齐和宽度

7.1 左对齐:

  • 使用 % 后面添加 - 来表示左对齐。
  • 在对齐符号后面添加宽度选项。

       

1 name = "John"
2 print("Name: %-10s" % name)  # 左对齐,宽度为 10

7.2 右对齐:

  • 在对齐符号后面添加宽度选项,不需要额外的符号来表示右对齐。
  • 默认情况下,字符默认右对齐。
1 name = "John"
2 print("Name: %10s" % name)  # 右对齐,宽度为 10

 

7.3  居中对齐:

  • 使用 % 后面添加 ^ 来表示居中对齐。
  • 在对齐符号后面添加宽度选项。

     

1 name = "John"
2 print("Name: %^10s" % name)  # 居中对齐,宽度为 10

 

示例:

复制代码
 1 #  左对齐
 2 name = "John"
 3 print("Name: %-10s" % name)  # 左对齐,宽度为 10
 4 
 5 #  右对齐
 6 name = "John"
 7 print("Name: %10s" % name)  # 右对齐,宽度为 10
 8 
 9 #  居中对齐
10 name = "John"
11 # print("Name: %^10s" % name)  # 居中对齐,宽度为 10,
12 # 不支持居中对齐(ValueError: unsupported format character '^' (0x5e))的解决方法
13 width = 10
14 padding = (width - len(name)) // 2
15 print("Name: %s%s%s" % (" " * padding, name, " " * (width - len(name) - padding)))
复制代码

输出结果:

 

4. f'xxx{变量/表达式}xxxx' 也叫 f-strings 

 示例

复制代码
 1 '''
 2 f-strings 是一种方便的字符串格式化方法,它可以使代码更简洁和易读
 3 语法:f'{变量/表达式}'
 4 {}叫占位符
 5 '''
 6 name = 'Allen'
 7 age = 25
 8 # 1. 变量
 9 message = f"My name is {name} and I am {age} years old."
10 print(message)  # My name is Allen and I am 25 years old.
11 
12 # 2. 表达式
13 print(f'{name}明年{age +1}岁')  # Allen明年26岁
14 
15 # 3. 使用冒号 : 来指定格式化选项,例如精度、宽度等。示例代码:
16 value = 3.14159
17 formatted_value = f"The value is: {value:.2f}"
18 print(formatted_value) # 输出 'The value is: 3.14'
19 
20 value='3.14'
21 print(f"The value is: {value:06s}")  #  The value is: 3.1400
22 print(f"The value is: {value:6s}")   # The value is: 3.14
23 
24 # 3. 格式化宽度时,实现左对齐或右对齐,可以使用 < 和 > 字符
25 name = "John"
26 # 3.左对齐即 冒号 : 并跟随 < 字符来指定左对齐。<10 表示字符串的宽度为 10,如果实际字符串的长度少于 10,那么将以空格填充到指定宽度。
27 message = f"Name: {name:<10}"
28 print(message) # 输出 'Name: John      '
29 # 3,右对齐即冒号 : 并跟随 > 字符来指定右对齐。>10 表示字符串的宽度为 10,如果实际字符串的长度少于 10,那么将以空格填充到指定宽度。
30 name = "John"
31 message = f"Name: {name:>10}"  # 只会处理变量name,"Name: "不受影响
32 print(message) # 输出 'Name:       John'  
复制代码

输出:

 总结

f-strings 是 Python 3.6+ 中引入的一种方便的字符串格式化方法。它使用一种简洁的语法,使得字符串的插入、表达式计算和格式化选项更加直观和易于使用。以下是关于 f-strings 的语法和总结:

  1. 基本语法:

    • 使用 f 前缀来创建 f-string。
    • 在 f-string 中使用大括号 {} 来插入变量、表达式或格式化选项。
    • 在大括号内可以包含变量名、表达式或格式化选项。

    示例:f"Hello, {name}!"

  2. 变量插入:

    • 在大括号内直接使用变量名。
    • 可以插入字符串、整数、浮点数和其他支持的数据类型。

    示例:f"My name is {name}."

  3. 表达式计算:

    • 在大括号内使用表达式。
    • 表达式的结果将被插入到字符串中。

    示例:f"The sum of 2+2 is {2+2}."

  4. 格式化选项:

    • 在大括号内使用冒号 : 来指定格式化选项。
    • 可以指定宽度、精度、对齐方式等格式化选项。

    示例:f"Value: {value:.2f}"

  5. 左对齐和右对齐:

    • 左对齐:在冒号后使用 < 字符。
    • 右对齐:在冒号后使用 > 字符。

    示例:f"Name: {name:<10}" 或 f"Name: {name:>10}"

f-strings 是一种方便的字符串格式化方法,它使用简洁的语法,使字符串的插入、表达式计算和格式化选项更加直观和易于使用。您可以在大括号内插入变量、表达式和格式化选项,并且可以使用 < 和 > 字符进行左对齐和右对齐。f-strings 可以提高代码的可读性和灵活性,是推荐的字符串格式化方法之一。

5. 字符串对象的 format() 方法来格式化字符串

示例

复制代码
 1 '''
 2 字符串对象的format方法进行字符串格式化
 3 1. 使用大括号 {} 作为占位符,并通过位置参数传递值
 4 2. 用大括号 {关键字参数} 作为占位符,并通过关键字参数传递值
 5 3. 格式化参数
 6 '''
 7 
 8 # 1. 位置参数,占位符没有指定变量名即关键字,使用顺序(位置)对齐
 9 name = "Allen"
10 age = 30
11 message = "My name is {} and I am {} years old.".format(name, age)
12 print(message)  # 输出 'My name is Allen and I am 30 years old.'
13 
14 # 2. 用大括号 {关键字参数} 作为占位符,并通过关键字参数传递值
15 name = "Allen"
16 age = 30
17 message = "My name is {name} and I am {age} years old.".format(age=age, name=name)
18 print(message) # My name is Allen and I am 30 years old.
19 
20 # 3. 在占位符内部使用冒号 : 来指定格式化选项,例如精度、宽度、对齐方式等
21 
22 # 3.1 宽度和精度:
23 # 使用 {:n} 格式化选项指定宽度为 n 的字段。
24 # 使用 {:0n} 格式化选项可以在字段前面添加零来填充空白。
25 # 使用 {:n.m} 格式化选项指定宽度为 n,精度为 m 的字段。
26 value = 42
27 print("Value: {:6}".format(value))   # 宽度为 6
28 print("Value: {:06}".format(value))  # 宽度为 6,前面补零
29 print("Value: {:.2f}".format(value)) # 两位小数
30 '''
31 输出结果:
32 Value:     42
33 Value: 000042
34 Value: 42.00
35 '''
36 
37 
38 # 3.2 对齐方式:
39 # 使用 <、^ 和 > 分别表示左对齐、居中和右对齐。
40 # 在对齐符号后面添加宽度选项。
41 name = "John"
42 print("Name: {:<10}".format(name))  # 左对齐,宽度为 10
43 print("Name: {:^10}".format(name))  # 居中对齐,宽度为 10
44 print("Name: {:>10}".format(name))  # 右对齐,宽度为 10
45 '''
46 输出结果:
47 Name: John      
48 Name:    John   
49 Name:       John
50 '''
51 
52 # 4. 进制转换:
53 # 使用 b、o、d 和 x 来分别表示二进制、八进制、十进制和十六进制。
54 # 使用 # 符号可以显示相应的进制前缀。
55 value = 42
56 print("Binary: {:b}".format(value))   # 二进制   Binary: 101010
57 print("Octal: {:o}".format(value))    # 八进制   Octal: 52
58 print("Decimal: {:d}".format(value))  # 十进制   Decimal: 42
59 print("Hexadecimal: {:x}".format(value))  # 十六进制  Hexadecimal: 2a
60 
61 
62 # 5. 千位分隔符:
63 # 使用逗号 , 分隔字符可以插入千位分隔符
64 value = 1000000
65 print("Value: {:,}".format(value))  # 千位分隔符  Value: 1,000,000
复制代码

总结

format() 函数是 Python 中用于格式化字符串的内置函数。它通过使用占位符 {} 和参数来插入值,并根据指定的格式化选项对值进行格式化。以下是关于 format() 函数的总结和示例:

  1. 基本语法:

    • 使用字符串对象的 format() 方法来格式化字符串。
    • 在格式化字符串中使用占位符 {} 来表示要插入的值的位置。
    • 通过在 format() 方法中传递参数,将值插入到相应的占位符位置。

    示例:"Hello, {}. Welcome to {}.".format(name, place)

  2. 位置参数:

    • 在 format() 方法中传递的值按顺序插入到占位符位置。
    • 可以根据需要在字符串中使用多个占位符。

    示例:"The {} {} jumped over the {}.".format(color, animal, object)

  3. 关键字参数:

    • 在 format() 方法中使用关键字参数来指定要插入的值的位置。
    • 在占位符中使用指定的关键字。

    示例:"My name is {name} and I am {age} years old.".format(name="John", age=30)

  4. 格式化选项:

    • 可以在占位符中使用冒号 : 来指定格式化选项。
    • 格式化选项用于指定宽度、精度、对齐方式等。

    示例:"Value: {:.2f}".format(value)

format() 函数是 Python 中用于格式化字符串的内置函数。您可以使用占位符 {} 和参数来插入值,并使用冒号 : 和格式化选项来对值进行格式化。您可以使用位置参数或关键字参数来指定要插入的值的位置。format() 函数提供了强大的字符串格式化功能,可以根据不同的需求进行灵活的字符串格式化操作。

posted @   Allen_Hao  阅读(237)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示