python复习(格式化字符串)

·  阅读 850

使用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 = '  jackfrued@126.com '
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
  jackfrued@126.com 
jackfrued@126.com
复制代码
分类:
代码人生
标签:
分类:
代码人生
标签:
收藏成功!
已添加到「」, 点击更改