文章目录

  • 一、字符串的比较操作
  • 二、字符串的切片操作
  • 三、字符串的格式化
  • 四、字符串的编码转换


一、字符串的比较操作

"""
字符串比较的规则:
首先比较字符串的第一个字符,如果相等则比较下一个字符
直到有两个字符不相等为止。
字符串比较的原理:
字符进行比较的时候,比较的是ordinal value,调用内置函数ord可以得到指定字符的ordinal value
与ord对应的内置函数是chr,chr函数可以根据指定的ordinal value得到对应的字符
"""
# 字符串的比较操作 > >= < <= == !=
print("apple">"appz")
print("apple">="appz")
print("apple"<"appz")
print("apple"<="appz")
print("apple"=="appz")
print("apple"!="appz")
# 字符和 ordinal value的互相转换
print(ord("万"))
print(ord("b"))
print(chr(22222))
print(chr(88))
"""
is 和 ==的区别
==比较的value值
is比较的是id
"""

二、字符串的切片操作

"""
字符串是不可变类型
不具备是增删改操作
所以切片得到的结果是产生新的对象

字符串索引
从左到右 从0开始
从右到左 从-1开始
"""
# 字符串的切片操作

name="hello,python"
print(name[:5]) # 由于没有指定起始位置,所以从0开始切
print(name[6:]) # 由于没有指定结束位置,所有切到字符串的最后一个元素
print(name[2:4])    # name[a:b] 切片范围[a,b)
print(name[2:6:2])    # name[start:end:step] 切片范围[start,end) 步长为step step默认为1
print(name[::2])    # 不写开始位置,不写结束位置,范围就是全部,步长为2
print(name[::-2])    # 步长为负的 从尾到头开始切
print(name[:5]+"!"+name[6:])

三、字符串的格式化

"""
格式化字符串的两种方式
1、%作为占位符
%s 表示字符串
%i 或 %d 表示整数
%f 表示浮点数
2、{}作为占位符
{}括号里面放序号 例如{0}、{1}
或者用f-string方法 格式为f"字符串{name}{age}"
"""
# 格式化字符串
# 1、%作为占位符
# 语法格式: 字符串 % 元组
name="张三"
age=18
print("我叫%s,今年%d岁" % (name,age))
print("%10d" % 99)  # 10表示的是宽度
print("%.3f" % 3.1415926)   # .3表示的是小数点后三位数
print("%10.3f" % 3.1415926)   # 同时表示精度和宽度
# 2、{}作为占位符
print("我叫{0},今年{1}岁".format(name,age))
print("{0:.3}".format(3.1415926))   # .3表示的是三位数
print("{:.3f}".format(3.1415926))   # .3表示的是小数点后三位数
print("{:10.3f}".format(3.1415926))   # .3表示的是小数点后三位数宽度为10
# 3、f-string方法进行格式化
print(f"我叫{name},今年{age}岁")

四、字符串的编码转换

"""
字符串的编码转换
之所以需要字符串的编码转换母的是为了两个计算机之间进行数据传输
编码与解码的方式
1、编码:将字符串转换为二进制数据(bytes)
2、解码:将bytes类型的数据转换成字符串类型
"""
# 编码 encoding方法
s="如何学习python代码"
print(s.encode(encoding="GBK")) # 在GBK这种编码中,一个中文占两个字节 b代表二进制
print(s.encode(encoding="UTF-8")) # 在UTF-8这种编码中,一个中文占三个字节 b代表二进制
# 解码 decode方法
byte=s.encode(encoding="GBK")   # 编码
print(byte.decode(encoding="GBK"))  # 解码