python入门--字符串的操作

字符串的操作

字符串的声明
# 字符串的声明:
"""
这是一个长字符串,在这里作为模块的文档注释
在命令行中可以查看这个模块的使用方式时,看到这里的注释
"""
s1 = '这是一个名为s1的,单引号表示的字符串'
s2 = "这是一个名为s2的,双引号表示的字符串"
s3 = """
这是一个名为s3的,三引号表示的字符串
以下是废话时间
今天放假,
明天回家,
美美哒
回家减肥,不可能的
家人做饭那么好吃
"""
s4 = "字符串中的引号可以互相'嵌套'"
s5 = '单引号中,同样可以直接写"双引号"'
s6 = "可以使用转移\"符号\""
s7 = '单引号中,也可以使用\'转义\'符号'
s8 = """
三个引号的字符串
本身就是一种字符串
但是有特殊的含义
如果不进行赋值操作,可以作为文档注释
文档注释:可以在命令行中直接操作出来
"""
def test():
    """
    这是一个test()函数,
    主要是用来进行测试
    测试三个引号表示的字符串的作用
    """

命令行下的执行效果

字符串的编码解码

python中字符串的操作
给机器看的:字节->将一个字符串转换成字节:encode()
给人看的:字符->将一个字节转换成字符:decode()

字符串:s = “集五福,过新年”
Python运行程序是->字符串->字节进行运行 x = s.encode(“UTF-8”)
Python程序运行结束时->操作的字节->字符串 s = x.decode(“utf-8”)
重新展示给用户

字符串->字节:字符串.encode(“编码格式”)->字节
字节->字符串:字节.decode(“编码格式”)->字符

# 字符串的编码解码
s = "集五福,过新年"
print("type(s)--->", type(s))
# type(s)---> <class 'str'>
print("s--->", s)
# s---> 集五福,过新年

x = s.encode("utf-8")
print("x = s.encode--->", x)
# x = s.encode---> b'\xe9\x9b\x86\xe4\xba\x94\xe7\xa6\x8f\xef\xbc\x8c\xe8\xbf\x87\xe6\x96\xb0\xe5\xb9\xb4'
print("type(x)---->", type(x))
# type(x)----> <class 'bytes'>
print("x.decode---->", x.decode("utf-8"))
# x.decode----> 集五福,过新年

字符串的大小写转换
# 字符串的大小写转换
s = 'hello'

s.capitalize()  # 首字母大写,一般用在文章中让第一个单词的首字母大写

s .lower()  # 字符串中的所有字符转换成小写

s.upper()  # 字符串中的所有字符转换成小写

print(s)
print('s.capitalize()->', s.capitalize())
print('s .lower()->', s .lower())
print('s.upper()->', s.upper())

tuichu = input("按Y键确认:")
if tuichu.upper() == "Y":
    print("已确认,请稍后...")

运行结果:

hello
s.capitalize()-> Hello
s .lower()-> hello
s.upper()-> HELLO
按Y键确认:y
已确认,请稍后...

字符串中数据的查询
# -------------字符串中数据的查询-------------
s = "集五福喽,过新年嘿,快乐年"
s.index("年")
print("s.index()->", s.index("年"))
# 查询指定字符串在目标字符串中第一次出现的位置
s.rindex("年")
print("s.rindex()->", s.rindex("年"))
# 查询指定字符串最后一次出现的位置r--->right
# 注意: 如果没有查询到,会报错

# -----可以指定查询范围
s.index("年", 1, 9)  # index(sub([,start[,end]]))
print("s.index('年', 1, 5)", s.index("年", 1, 9))

# s.index("s")
# 错误提示  ValueError: substring not found

s.find("年")
# 等价于index
print("s.find()-", s.find("年"))

s.rfind("年")
# 等价于rindex
print("s.rfind()-", s.rfind("年"))
# 如果没有查询到,不作任何操作,直接返回-1

s.find("s")
print("s.find('s')", s.find("s"))

s.count("年")
# ----------查询字符串中某个指定字符出现的次数
print("s.count()--", s.count("年"))

运行结果
字符串的查询

获取字符串的长度
# --------获取字符串的长度
x = len(s)  # 直接获取字符串的长度

password = input("请输入您的注册密码")
if len(password) < 6:
    print("密码长度至少为六位,你输入的密码长度不正确,请重新输入您的密码.....")

运行结果

请输入您的注册密码gg
密码长度至少为六位,你输入的密码长度不正确,请重新输入您的密码.....
字符串的替换
# ------------字符串的替换------------
s = "集齐五福!坐等开奖 ! 还有扫康字的活动(^-^)V !"
print("替换前--", s)
x = s.replace("!", "快乐加倍")
# 使用快乐加倍替换字符中所有的!号
print("替换后--", x)
# 提示:用于在敏感词过滤时,就可以直接使用替换函数
x1 = s.replace("!", "******", 2)
print("有次数的替换--", x1)
# 从头开始查询,替换两次

运行结果

替换前-- 集齐五福!坐等开奖 ! 还有扫康字的活动(^-^)V !
替换后-- 集齐五福快乐加倍坐等开奖 快乐加倍 还有扫康字的活动(^-^)V 快乐加倍
有次数的替换-- 集齐五福******坐等开奖 ****** 还有扫康字的活动(^-^)V !

字符串的空格操作
# -------------字符串的空格操作--------------
s = input("请输入您的账号")
s1 = s.strip()  # 剔除s两边的所有的空格
s2 = s.rstrip()  # 剔除右边的空格,几乎不用
s3 = s.lstrip()  # 剔除左边的空格,几乎不用
print("s1", s1)
print("s2", s2)
print("s3", s3)

字符串的空格操作,运行结果

判断字符串格式
# ------------以xx开头,以xx结尾---------
# str.endswith()   判断字符串是否以指定的字符结尾
email = "[email protected]"
if email.endswith("qq.com"):
    print("qq邮箱格式正确")
# str.startswith() 判断字符串是否以指定字符开头
Internet = "https://www.baidu.com"
if Internet.startswith("https://"):
    print("网址正确")

运行结果

qq邮箱格式正确
网址正确
字符串的拆分
# --------------字符串的拆分--------------
# 字符串的拆分
s = "敬业福,和谐福,爱国福,友善福,富强福"
print("s", s)
fuka = s.split(",")  # 使用指定的字符,将一个字符串拆分成字符列表
print("fuka", fuka)
collect = '||'.join(fuka)  # 使用指定的字符,将一个字符串列表拼接成字符串
print("collect", collect)
for n in fuka:
    print("哇哦,看,已经有这些福卡了呢:%s" % n)

运行结果

s 敬业福,和谐福,爱国福,友善福,富强福
fuka ['敬业福', '和谐福', '爱国福', '友善福', '富强福']
collect 敬业福||和谐福||爱国福||友善福||富强福
哇哦,看,已经有这些福卡了呢:敬业福
哇哦,看,已经有这些福卡了呢:和谐福
哇哦,看,已经有这些福卡了呢:爱国福
哇哦,看,已经有这些福卡了呢:友善福
哇哦,看,已经有这些福卡了呢:富强福
字符串的扩展方法
# --------------字符串的扩展方法----------------
str.isalnum()
# 判断字符串中是否只有数字和字母组成,出现其他字符为False
str.isdecimal()  # 判断字符串中是否只有数字
str.istitle()  # 判断首字母是否大写

# 字符串的对齐方式
str.ljust(10)  # 字符串总共占据10个字符,字符串str左对齐
str.rjust(10)  # 字符串总共占据10个字符,字符串str右对齐
str.center(10)  # 字符串总共占据10个字符,字符串str居中

猜你喜欢

转载自blog.csdn.net/weixin_43948730/article/details/86674819