python复习(格式化字符串)

语言: CN / TW / HK

使用print()函数很容易输出各种对象,但print()函数无法输出设计复杂的格式。Python提供了字符串格式化的方法来处理复杂格式的字符串。

%符号格式化字符串

  • 字符串格式化涉及到两个概念:格式和格式化,其中格式以%开头,格式化运算符用%表示用对象代替格式串中的格式,最终得到1个字符串。
  • 字符串格式化的一般形式如图所示:

image.png

常用格式字符%的含义

image.png

IN ``` name='Lily' age=18 print('我叫%s,今年%d岁'%(name,age))

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

OUT 我叫Lily,今年18岁 ```

format()方法格式化字符串

format()方法是通过{}:来代替传统%方式。一般形式如图所示:

image.png

format方法格式化时,可以使用位置参数,根据位置来传递参数;也可以通过索引值来引用位置参数,只要format方法相应位置上有参数值即可,参数索引从0开始;

IN print('我叫{},今年{}岁'.format('张三',18)) print('我叫{0},今年{1}岁'.format('张三',18)) print('我叫{1},今年{0}岁'.format(18,'张三')) OUT 我叫张三,今年18岁 我叫张三,今年18岁 我叫张三,今年18岁

f-string格式化字符

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

IN name='张三' age=18 print(f'我叫{name},今年{age}岁') OUT 我叫张三,今年18岁

字符串截取

  • 字符串的截取就是取出字符串中的子串。截取有两种方法:一种是索引str[index]取出单个字符;另一种是切片str[[start]:[end]:[step]]取出一片字符。切片方式与列表部分介绍的一样。

  • 字符串中字符的索引跟列表一样,可以双向索引。如图所示:

image.png

IN s='student' print(s[0]) print(s[-1]) print(s[1:3])#取出位置1到位置2的字符,不包括位置3的字符 print(s[:3])#取出从头到位置2的字符 print(s[-2:])#取出从倒数第2个位置开始的所有字符 print(s[:])#取出全部字符 print(s[::2])#步长为2 OUT s t tu stu nt student suet

字符串处理:

IN ``` str1 = 'hello, world!'

通过内置函数len计算字符串的长度

print(len(str1)) # 13

获得字符串首字母大写的拷贝

print(str1.capitalize()) # Hello, world!

获得字符串每个单词首字母大写的拷贝

print(str1.title()) # Hello, World!

获得字符串变大写后的拷贝

print(str1.upper()) # HELLO, WORLD!

从字符串中查找子串所在位置

print(str1.find('or')) # 8 print(str1.find('shit')) # -1

与find类似但找不到子串时会引发异常

print(str1.index('or'))

print(str1.index('shit'))

检查字符串是否以指定的字符串开头

print(str1.startswith('He')) # False print(str1.startswith('hel')) # True

检查字符串是否以指定的字符串结尾

print(str1.endswith('!')) # True

将字符串以指定的宽度居中并在两侧填充指定的字符

print(str1.center(50, '*'))

将字符串以指定的宽度靠右放置左侧填充指定的字符

print(str1.rjust(50, ' ')) str2 = 'abc123456'

检查字符串是否由数字构成

print(str2.isdigit()) # False

检查字符串是否以字母构成

print(str2.isalpha()) # False

检查字符串是否以数字和字母构成

print(str2.isalnum()) # True

str3 = ' [email protected] ' print(str3)

获得字符串修剪左右两侧空格之后的拷贝

print(str3.strip()) OUT 13 Hello, world! Hello, World! HELLO, WORLD! 8 -1 False True True ***hello, world!**** hello, world! False False True [email protected] [email protected] ```