字符串是计算机编程中表示文本数据的一种数据类型。它是由字符组成的序列,可以包含字母、数字、标点符号和其他特殊字符。
1. 字符串的转义符
转义有两层含义:
1. 将一些普通符号赋予特殊功能,比如 `\n` , `\t` 等
2. 将一些特殊符号变为普通符号,比如 `\"` , `\\` 等
以下是一些常见的转义字符及其含义:
案例一,字符串中包含转义字符的自动转义:
s1 = 'D:\Program Files\nancy\table\back\Python 3.12\python.exe'
print('s1:', s1)
直接使用文件路径,可以看到结果显示异常。原因是包含转义字符并自动转换了
同时还有语法警告:SyntaxWarning: invalid escape sequence
案例二,使用反斜杠将转义字符普通化:
s21 = 'D:\Program Files\\nancy\\table\\back\Python 3.12\\python.exe'
s22 = 'D:\\Program Files\\nancy\\table\\back\Python 3.12\\python.exe'
print('s21:', s21)
print('s22:', s22)
可以看到结果显示是没有问题的,但还是有语法警告。
那还能怎样做才是最好的?
案例三,使用 row-string 声明:
s3 = r'D:\Program Files\nancy\table\back\Python 3.12\python.exe' # row-string
print('s3:', s3)
可以看到结果显示是没有问题的,且没有有语法警告。
案例四,使用反斜杠将特殊符号:"" 、 '' 普通化:
# 使用反斜杠 \ 将特殊符号普通化
s4 = "i'm \"feiyi!\""
s5 = 'i\'m "feiyi!"'
print(s4)
print(s5)
2. 格式化输出
格式化输出是一种将变量值和其他文本组合成特定格式的字符串的技术。它允许我们以可读性更好的方式将数据插入到字符串中,并指定其显示的样式和布局。
在Python中,有多种方法可以进行格式化输出,其中最常用的方式是使用字符串的 f-strings(格式化字符串字面值)。
【1】%占位符
案例:
name = "feiyi"
age = 500
message = "My name is %s, and I am %s years old." % (name, age)
print(message)
在这个示例中,我们使用 `%s` 占位符将变量 `name` 的值插入到字符串 `"Hello, %s!"` 中,然后通过 `%` 运算符进行格式化。在执行格式化时,`%` 运算符的左侧是字符串模板,右侧是要按顺序插入的值。
【2】f-string格式
格式化字符串字面值(Formatted String Literal,或称为 f-string)来进行格式化输出。适用于 Python 3.6 及以上版本。
案例:
name = "feiyi"
age = 500
height = 188.123456
s = f"姓名:{name: ^10},年龄:{age},身高:{height:^10.5}cm"
print(s)
name = "python"
age = 18
height = 186.2356
print(s)
可以看到,变量s 的格式化声明,仅生效一次。如:
name = "feiyi"
age = 500
height = 188.123456
s = f"姓名:{name: ^10},年龄:{age},身高:{height:^10.5}cm"
print(s)
name = "python"
age = 18
height = 186.2356
s = f"姓名:{name: ^10},年龄:{age},身高:{height:^10.5}cm"
print(s)
【3】f格式化的变量说明
1.宽度与精度
如【2】f-string格式的案例中的:{name: ^10}、{height:^10.5}
格式描述符形式为:`width[.precision]`。
- `width`正整数,设置字符串的宽度。
- `precision`非负整数,可选项,设置字符串的精度,即显示字符串前多少个字符。
2.填充与对齐
格式描述符形式为:`[pad]alignWidth[.precision]`。
- `pad`填充字符,可选,默认空格。
- `align`对齐方式,可选`<`(左对齐),`>`(右对齐),`^`(居中对齐)。
虽然 `%s` 是一种用于字符串格式化的方式,但自从 Python 3.6 版本起,推荐使用格式化字符串字面值(f-string)或 `.format()` 方法来进行字符串格式化,因为它们提供了更简洁和直观的语法。