Python字符串

发布时间:2024年01月16日

一、字符串基础

1、字符串转化

str()可以将任意数据类型转换为字符串

2、字符串表示

(1)、单元号、双引号、三引号

  • 单元号
  • 双引号
  • 三引号:用于声明特殊格式,以及文档注释,以及类注释;里面的格式都可以保留;放在文档开头。
s0 = "双引号字符串"
s1 = '单引号字符串'
s2 = """
三引号用于声明特殊格式,以及文档注释,以及类注释
    即 里面的格式都可以保留
    单双引号都可以  
    放在文档开头             
"""

(2)、获取文档:

# 获取文档注释:  .__doc__
import random
print(random.__doc__)

(3)、单引号与双引号配合使用,不可同一字符嵌套使用。

s3 = "123'3'3435"

(4)、字符串长度

?

# PEP8规范,单行字符串不要超过120个字符
# 可以用: 空格\空格 回车,来换行
# 也可以在字符串中使用回车换行
s4 = "2154333566688888" \
     "888888888888" \
     "8666666666666"

3、转义字符

  • 转义符号的含义是将原来字符的含义转为其他的表示意义
# s5 = "2324\gd1fh"    # 要转义
s6 = "32435\\ret"
s7 = "\\\\gq4rg\\ew3ew324"
#      \\gq4rg\ew3ew324 ,\也要转义
print(s6, s7)

s8 = "换行转义字符为\n即换行"
s9 = "制表符转义字符为\t即制表符"
s10 = "在双引号前加\可输出双引号,即:\";单引号同样适用,即:\'"
s11 = "退格转义字符为\b,即向前删除一个字符"

# 结果
# 32435\ret \\gq4rg\ew3ew324
# 32435\ret
# 换行转义字符为
# 即换行
# 制表符转义字符为	即制表符
# 在双引号前加\可输出双引号,即:";单引号同样适用,即:'
# 退格转义字符,即向前删除一个字符

二、字符串遍历

1、拼接字符串

s0 = "hello"
s1 = "world"
s2 = s1 + s0

2、乘号可以使字符串重复,乘数字,即重复几遍

s0 *= 3

3、索引:下标,不可越界

[0, len - 1]
print(s0[5])
print(len(s0))

4、通过字符串中的索引可以找到字符串中的任意字符

str_value = input("请输入:")
print(str_value, str_value[0], str_value[len(str_value)-1])
length = len(str_value)

(1)、不带索引

# 相当于在字符串中遍历,遍历每一个字符
for i in str_value:
    print(i)

(2)、使用字符串索引可以取到关键字

for j in range(length):
    print(j, str_value[j])      # j为索引

5、输入一个字符串判断字符串是否对称

value = input("请输入:")
length = len(value)
for i in range(length // 2):
    if value[i] != value[length - i - 1]:
        print("不对称")
        break
else:
    print("对称")
# 关键在与找出索引之间的规律

三、字符串常见操作

【1】:format() 将字符串格式化
# {}中的下标要同时有或同时没有,下标的顺序为format中参数的内容
print("a={}, b={}".format(8, 9))
print("a={0}, b={1}".format(8, 9))
print("a={1}, b={0}".format(8, 9))
print(f"a={a}, b={b}")
# 结果a=8, b=9
# a=8, b=9
# a=9, b=8
# a=8, b=9
【2】:"".join()拼接
# 将前面的内容,添加到后面的每一个字符中
# 后面的内容要为可以迭代(可以使用for遍历)的内容
print("+".join("helloword"))
print("-".join(["天", "天", "开", "心"]))
# # h+e+l+l+o+w+o+r+d
# # 天-天-开-心
【3】:split分割 将字符串使用指定内容切割成列表
# split分割,返回列表
print("123123123123123".split("2"))
# ['1', '31', '31', '31', '31', '3']
【4】:strip剥离,strip()默认去除空格,可编辑方法,去除其他内容
# 去除的内容无论是正的还是反的都可以去除,并且可以不论几个都可以去除
print("  ‘默认去除空格’  ".strip())
print("*****--可编辑去除内容-*-*".strip("**"))
print("1234--可编辑去除内容-321".strip("123"))
print("1234--可编辑去除内容-123".strip("123"))
print("3211234--可编辑去除内容-123321".strip("123"))
# # --可编辑去除内容-*-
# # 4--可编辑去除内容-
# # 4--可编辑去除内容-
# # 4--可编辑去除内容-

.lstrip()去除左侧内容

print("1234去除左边的内容1234".lstrip("1234"))
# # 去除左边的内容1234

.rstrip()去除左侧内容

print("1234去除左边的内容1234".rstrip("1234"))
# # 1234去除左边的内容
【5】:count()统计字符串出现的次数,默认从开头到结尾,也可以自己编辑,结尾不包括
# .count("", start, end)
print("1231231231231243".count("123"))
print("1231231231231243".count("123", 3, 9))
# #      0123456789
# # 结果
# # 4
# # 2
【6】:find 查找第一次出现的位置
# -1表示没有
# 索引不会变,都是从左到右
# 默认从左到右,从开始到结尾
# .find("", start, end)
print("123123123123123".find("312"))
# 结果:2
# rfind("", start, end),从右开始找,找到的第一个等于字符串的索引
# 结尾边界不包括,即结尾要取到需要索引加一
print("123123123123".rfind("123", 5, 12))
# #      0123456789
# 结果:9

?

【7】:index 查找字符串第一次出现的位置
# .index("", start, end)不包括最后一个索引值
# 和find相似,但找不到结果直接报错,索引值超过不会报错
print("123123123123".index("23", 3, 10))
print("123123123123".index("243", 3, 10))
# 结果:4
# ValueError: substring not found

# (2)、rindex
# 默认从右侧开始数,也可设置开始结束值,但索引还是从左向右开始
print("123123123123".rindex("12"))
print("123123123123".rindex("23", 5, 12))
# 结果:9
# 10
【8】:(1)、encode 编码
(2)、decode解码
# encode编码解码方式要一致
# encoding默认为UTF-8模式,可定义其他编码
num_encode = "清澈的小溪".encode(encoding="GB2312")
print(num_encode)
print(num_encode.decode(encoding="GB2312"))
# 结果:
# b'\xc7\xe5\xb3\xba\xb5\xc4\xd0\xa1\xcf\xaa'
# 清澈的小溪
【9】:大小写转换,只适用于英文字母
# (1)、capitalize()  将首字母转换成大写
print("this is a magnificent building.".capitalize())
# 结果:This is a magnificent building.

# (2)、upper()  全都换成大写
print("this is a magnificent building.".upper())
# 结果:THIS IS A MAGNIFICENT BUILDING.

# (3)、lower()  全都换成小写
print("thIs is a MagniFIcent bUilding.".lower())
# 结果:this is a magnificent building.

# (4)、title()  将所有单词的首字母转换成大写
print("this is a magnificent building.".title())
# 结果:This Is A Magnificent Building.

# (5)、title()  切换大小写
print("thIs is a MagniFIcent bUilding.".swapcase())
# 结果:THiS IS A mAGNIfiCENT BuILDING.
【10】:内容对齐
# (1)、center()居中对齐,其中的参数为字符所占的页面数,即字符串加上填充的总数
# 默认以空格填充,也可定义其他内容,但只能是一个字符,可以是字母、符号、数字、汉字
print("登录页面".center(30, "*"))
# 结果:*************登录页面*************

# (2)、ljust()字符串靠左位置
# 默认以空格填充,也可定义其他内容,但只能是一个字符,可以是字母、符号、数字、汉字
print("Dear Professor:".ljust(30, "+"))
# 结果:Dear Professor:+++++++++++++++

# (3)、ljust()字符串靠右位置
# 默认以空格填充,也可定义其他内容,但只能是一个字符,可以是字母、符号、数字、汉字
print("Yours Sincerely".rjust(30, "-"))
# 结果:---------------Yours Sincerely

# (4)、zfill()以0填充,字符串在右侧
print("Have a good day.".zfill(30))
# 结果:00000000000000Have a good day.
【11】:判断是否以某个字符串为开头或结尾
# (1)、startswith("")    判断开始,参数为眼判断的字符串
print("常记溪亭日暮沉醉不知归路".startswith("常记溪亭"))
# 结果:True

# (1)、endswith("")    判断结束,参数为眼判断的字符串
print("常记溪亭日暮沉醉不知归路".endswith("路归"))
# 结果:False
【12】:replace("", "")替换 两个参数分别是"被替换的内容"和"替换的内容"
print("今天的天气为晴天".replace("晴天", "阴天"))
# 结果:今天的天气为阴天
【13】:判断是否以是字母数字
# (1)、.isalnum()    判断是否为字母或数字
# 字母部分可以是中文和字母,但不能是符号标点
print("今天的天气为晴天Sunday20240111".isalnum())
# 结果:True

# (2)、.isalha()   判断是否全为字母
print("Sunday转阴".isalpha())
# 结果:True

# (3)、.isnumeric()   判断是否全为数字
# 只能是整数,不可为小数
num = 123.45
a = str(num)
print(a.isnumeric())
print("43265726".isnumeric())
# 结果:False
# True

文章来源:https://blog.csdn.net/m0_62413155/article/details/135537930
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。