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公斤
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 的语法和总结:
-
基本语法:
- 使用 f 前缀来创建 f-string。
- 在 f-string 中使用大括号
{}
来插入变量、表达式或格式化选项。 - 在大括号内可以包含变量名、表达式或格式化选项。
示例:
f"Hello, {name}!"
-
变量插入:
- 在大括号内直接使用变量名。
- 可以插入字符串、整数、浮点数和其他支持的数据类型。
示例:
f"My name is {name}."
-
表达式计算:
- 在大括号内使用表达式。
- 表达式的结果将被插入到字符串中。
示例:
f"The sum of 2+2 is {2+2}."
-
格式化选项:
- 在大括号内使用冒号
:
来指定格式化选项。 - 可以指定宽度、精度、对齐方式等格式化选项。
示例:
f"Value: {value:.2f}"
- 在大括号内使用冒号
-
左对齐和右对齐:
- 左对齐:在冒号后使用
<
字符。 - 右对齐:在冒号后使用
>
字符。
示例:
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()
函数的总结和示例:
-
基本语法:
- 使用字符串对象的
format()
方法来格式化字符串。 - 在格式化字符串中使用占位符
{}
来表示要插入的值的位置。 - 通过在
format()
方法中传递参数,将值插入到相应的占位符位置。
示例:
"Hello, {}. Welcome to {}.".format(name, place)
- 使用字符串对象的
-
位置参数:
- 在
format()
方法中传递的值按顺序插入到占位符位置。 - 可以根据需要在字符串中使用多个占位符。
示例:
"The {} {} jumped over the {}.".format(color, animal, object)
- 在
-
关键字参数:
- 在
format()
方法中使用关键字参数来指定要插入的值的位置。 - 在占位符中使用指定的关键字。
示例:
"My name is {name} and I am {age} years old.".format(name="John", age=30)
- 在
-
格式化选项:
- 可以在占位符中使用冒号
:
来指定格式化选项。 - 格式化选项用于指定宽度、精度、对齐方式等。
示例:
"Value: {:.2f}".format(value)
- 可以在占位符中使用冒号
format()
函数是 Python 中用于格式化字符串的内置函数。您可以使用占位符 {}
和参数来插入值,并使用冒号 :
和格式化选项来对值进行格式化。您可以使用位置参数或关键字参数来指定要插入的值的位置。format()
函数提供了强大的字符串格式化功能,可以根据不同的需求进行灵活的字符串格式化操作。