本篇主要是字符串的知识点
建议跟着敲出来哦,相信扎实的基础会为之后的进阶大大助力~
目录
字符串
可包含任意一个符号和数字
可以用单引号/双引号括起来,注意不可以混用,如
a= 'hello"
print(a)
输出:SyntaxError:EOL while scanning string literal
---------------------------------------
a='I'm LiHua' X
a="I'm LiHua" √
a='I\'m LiHua' √ #转义操作符(\)让后面的引号失去作为字符串开头或结尾符号的含义
(一)字符串的基本操作
1.获取字符串的单个字符
当我们需要获取字符串的某个字符时,只需要他的索引值就好啦
a='nuxiwbxnsu'
print(a[1])
# u
2.字符串的拼接
1. "+"拼接
print(666+666)# 1332
print('666'+'666')# 666666
2. 直接拼接,中间没有符号或者只有空格符号
print('666''666')# 666666
print('666' '666')# 666666
3. join()函数拼接
insert_string=' '.join('Hello')# H e l l o
insert_string='_'.join('Hello')# H_e_l_l_o
join函数的分隔符不只有上述两种,其分隔符还包括符号、数字、字母,甚至是空白字符.
4. 通过字符串的格式化方法拼接
format_string = '%s %s'%('Hello','World')# Hello World
format_string = '%s,%s'%('Hello','World')# Hello,World
format_string = '{} {}'.format('Hello','World')# Hello World
format_string = '{}{}'.format('Hello','World')# HelloWorld
format_string = f'{'Hello'} {'World'}'# Hello World
format_string = f'{'Hello'}_{'World'}'# Hello_World
5. 通过()多行拼接
当python遇到未闭合的小括号时,会自动将多行拼接为一行。
joint_string = (
'Hello'
' '
'World')
print(joint_string)# Hello World
3.字符串的分割
获取字符串的一个/多个字符
A 字符串的分片
a='Hello World'
part_a = a[0:5] # Hello
part_a = a[1:4] # ell
part_a = a[:5] # Hello
分片包括开始字符,不包括结束字符。分片可以简写,如果略去开始位置的字符,就会默认从头
开始。如果略去结束位置的字符,那么默认结束位置为字符串的最后一个字符。如果都省去,那么将是完整字符串。在分片操作中,支持“负索引”,即从字符串末端开始切片。
part_a = a[-1]# d
part_a = a[-5:-3]# wo
-----------------------------------------------------------
B split()函数
将给定的符号作为分割符号,在字符串中找出相同的符号,并把符号两边的字符串分成两个字符串,存在一个列表中,如果字符串中不只有一个分割符,那么将会被分成多个字符串
a='How are you'
split_result = a.split()或者 a.split(' ')#split默认的分割符为空格
print(split_result)
# ['How', 'are', 'you']
得到的字符串不包括分割符
split_result = a.split('o')
# ['H', 'w are y', 'u']
split可以没有参数,但是参数不能为空字符串,即输入的引号里面必须有东西
4.多行字符串
当行数非常多的时候------->三重引号字符串
(二)格式化字符串
格式化操作符%
使用不多
格式化操作符的辅助命令
a.限制总宽度和小数位数
print('Π的值为%4.2f'% 3.1415926)
print('%f用科学计数法表示为:%.2e'%(666666,666666))
输出为:
Π的值为3.14
666666.000000用科学计数法表示为:6.67e+05
b.左对齐
print('%9.2f没有左对齐时为:%9.2f'%(6.666,6.666))
print('%9.2f左对齐时为:%-9.2f'%(6.666,6.666))
c.在正数前加+
print('%4.2f可以写为:%+4.2f'%(6.666,6.666))
print('%4.2f可以写为:%+4.2f'%(-6.666,-6.666))
输出为:
6.67可以写为:+6.67
-6.67可以写为:-6.67
d.标记八进制和十六进制
print('%d转化为八进制为:%#o'% (6666,6666))
print('%d转化为十六进制为:%#x'% (6666,6666))
输出为:
6666转化为八进制为:0o15012
6666转化为十六进制为:0x1a0a
e.用0取代用于对齐的空格
print('%9.2f可以表示为:%09.2f'%(6.666,6.666))
输出为:
6.67可以表示为:000006.67 #前面是空格,不是格式错误哦
format()
共五种方法
1. 直接在字符串需要填入的地方加入大括号,然后在函数的括号中按顺序依次填入需要加入到字符串中的数据。这种方法一定要注意括号中的参数要按顺序填入,否则就会填入错误的信息,有时候还会报错。
print('我是{}级的{}'.format(2020,'喵喵'))
我是2020级的喵喵
2. 在需要填入的地方加入大括号,不同的是要在大括号中填入位置参数,而函数括号中的参数也不是按顺序填入,而是按照与大括号中位置参数的对应关系填入。
print('我是{1}级的{0}'.format('喵喵',2020))
我是2020级的喵喵
3. 用索引的办法,在大括号中填入参数的名称,这也就是关键字参数,然后在函数的括号中同时填入名称和名称对应的参数,并用“=”连接。
print('我是{grade}级的{name}'.format(grade=2020,name='喵喵'))
我是2020级的喵喵
可以同时使用位置参数和关键字参数,但是位置参数要在前面
print('我是{0}级的{name}'.format(2020,name='喵喵')) √
print('我是{grade}级的{}'.format(grade=2020,'喵喵'))×
SyntaxError: positional argument follows keyword argument
4. 通过对象属性的对应关系实现格式化。定义一个对象之后,在大括号中填入对象的属性名,再在函数的括号中填入对象名,这样就能在对应的属性的内容。
5. 通过元素的下标实现格式化。当需要填入的信息是在一个列表中时,可在括号中填入列表所在位置参数和需要填入的元素在列表中的下标,在函数的括号中填入需要的列表。
a=['喵喵',20]
print('我是{0[1]}级的{0[0]}'.format(a))
我是20级的喵喵
f-String
f-String,formatted string literals,格式化字符串常量
Python3.6版本新引入的一种格式化方法
f-String在格式上是以字母f或F开头的字符串,(f'*********'或F‘*********’)
在字符串中以{ }标明被替换的字段。
本质上是运行时运算求值的表达式
name = '王大明'
grade = 2019
age = 18
print(f'我是{grade}级的{name},我{age}岁了')
//相当于把变量内嵌到字符串
我是2019级的王大明,我18岁了
在大括号中书写表达式以输出计算值
如,
import random
print(f'A total number of {25*4+8}')
name ='Li DD'
print(f'My name is {name.lower()}')
print(f'本次抽取的随机数为:{random.randint(0,10)}')
输出为
A total number of 108
My name is li dd
本次抽取的随机数为:4
可以正常使用大括号
使用f-String同样可以进行对齐操作、补符号操作、指定宽度操作、补零操作、控制精度操作、千位分隔符操作等
f-String 采用{content: format}的形式来设置字符串格式。其中content是用以填入需要格式化的学符串,可以是变量、表达式或函数等,format是格式描述符。采用默认格式时不必指定format项,只需使用{content}即可。
1)对齐操作format描述符:
< | 左对齐显示(字符串默认对齐方式) |
> | 右对齐显示(数值默认对齐方式) |
^ | 居中显示 |
2)补符号操作 format描述符:
+ | 在负数前加负号,正数前加正号 |
- | 在负数前加负号,正数前不加任何符号 |
[空格] | 在负数前加负号,正数前加一个空格 |
3)指定宽度操作与控制精度操作相关格式描述符:
width | 整数width指定宽度 |
0width | 整数width指定宽度,在数字前方用0补足位数 |
width.precision | 整数width指定宽度,整数 precision表示显示精度 |
此点在使用时,以下内容需要特别注意:
- 0width不可用于复数类型和非数值类型,width.precision不可用于整数类型。
- width.precision用于不同格式类型的浮点数、复数时的含义也不同,用于f、F、e、E和%时 precision 指定的是小数点后的位数,用于g和G时 precision指定的是有效数字位数(小数点前位数+小数点后位数)。
- width. precision 除浮点数、复数外还可用于字符串,此时 precision含义是只使用子符串中前 precision位字符。
4)千位分隔符相关格式描述符
, | 使用,作为千位分割符 |
_ | 使用_作为千位分割符 |