python字符串

字符串定义

字符串是程序中非常常见的类型
在这里插入图片描述
字符串声明:

双引号或者单引号中的数据,就是字符串
例如:

  str='abc'
  str2="abc"

字符串下标访问:
字符串可以通过访问下标访问单个字符
例如:

  str="abcdef"
  str2=str[3] #索引下标从零开始,最大值为长度-1
  通过len()方法获取字符串的长度
  print(len(str))#6

在这里插入图片描述
扩展:
截取:
str3=str[0:3] 从第一个字符开始,不包括最后一个字符
str3=str[:3] 从第一个字符开始,不包括最后一个字符
str3=str[3:] 从下标是3的字符开始,一直到最后
跳着截取:

str4=str[0:5:2]从坐标为0开始到坐标为5结束,间隔2个

倒着截取:
str5=str[::-1] 倒序
str5=[-1:-3:-1]倒着间隔1

字符串格式化:


    str="天气不错"
    num=15.685
    print("你的字符串为%s,数字为%0.2f"%(str,num))

在这里插入图片描述

""
字符串的拼接
"""

#方案一:+
name = "tom"
age = 18
height = 180

info = "个人介绍:【姓名:"+name+";年龄:"+str(age)+";身高:"+str(height)+"】"
print(info)

"""
总结:1.麻烦 2.还得注意类型转换
"""

#方案二:使用占位符%拼接字符
info2 = "个人介绍:【姓名:%s;年龄:%s;身高:%s】"%(name,age,height)
print(info2)
"""
总结:1.声明了一个字符串,%是一个特殊的符号
2.%表示这里需要一个数据【占位:占据一个空位】
占据的空位等待需要的数据填充进来
3.%作为占位符,只是一个特殊符号,不能在字符串中直接输出出来,
如果要输出一个%,使用%%。
4.%?:占位符后面的那个字母,到底有什么作用?
%s:占位:这里需要填充一个字符串数据
%d:占位:这里需要填充一个整数数据
%f:占位:这里需要填充一个浮点数数据
......
"""

#方案三:字符串使用函数format拼接 format:格式化
info3 = "个人介绍:【姓名:{},年龄:{},身高:{}】".format(name,age,height)
print(info3)
 #还可以通过索引传参
s = "{2}hello{1}".format("0","1","2")
print(s)#2hello1
info4= "个人介绍:【姓名:{name},年龄:{age},身高:{h}】".format(name=name,age=age,h=height)
print(info4)
info5 = "个人介绍:【姓名:{name},年龄:{age},身高:{h}】".format(name=name,h=height,age=age)
print(info5)
"""
总结:
注意它的变换形式
"""

#方案四:字符串的直接拼接
info6 = f"个人介绍:【姓名:{name},年龄:{age},身高:{height}】"
print(info6)

"""
总结:
s = f"" 这是一个格式化字符串,f是format的缩写,
字符串中的{}包含的字符串会自动解释成变量
s = u"" 这是一个unicode编码的字符串,u是unicode的缩写
s = b"" 这是一个二进制字符串,b是binary的缩写
......
"""
s = u"{name}"
print(s,type(s))
s2 = b"{name}"
print(s2,type(s2))

在需要在字符中使用特殊字符时,python用反斜杠()转义字符。

"""
\ :转义字符
\":转译双引号
\':转译单引号
换行符:\ 自动回车
\t:横向制表符
\r:回车 代表光标的位置(从\r出现的位置开始作为光标的起点,前面的
内容会被自动覆盖掉)
\n:换行
"""

strA = "中午了,该\\吃饭"+'"'+"了,饿\"的都不行\n了吧"
print(strA)

strB = '中午了,该吃饭了,饿\'的都不行\r了吧'
print(strB)

strC = "第一\t好好学习" \
       "第二\t天天向上"

print(strC)

# r是去除转译字符  remove
strD = r"周五\t下午,\"同学\'们唱的\\歌很好听!!!"
print(strD)

strE = r"D:\pyteach\py1908\字符串\字符串的定义.py"
print(strE)

在这里插入图片描述

字符串运算符
在这里插入图片描述
常见操作-查找

string.find(str, beg=0, end=len(string))
        检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
 string.rfind(str, beg=0, end=len(string))
        类似于 find()函数,不过是从右边开始查找.
 string.index(str, beg=0, end=len(string))
        类似于 find()函数,但是找不到报异常.
 string.rindex(str, beg=0, end=len(string))
        类似于 rfind()函数,但是找不到报异常.

常见操作-统计

string.count(str, beg=0, end=len(string))
        检测 str 是否包含在 string 中出现的次数,如果 beg 和 end 指定范围,则检查是否包含在指定范围内

常见操作-分割

string.split(str="", num=string.count(str))
        以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
    string.splitlines([keepends])
        按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
    string.partition(str)
        有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
    string.rpartition(str)
        类似于 partition()函数,不过是从右边开始.

常见操作-判断

    string.startswith(obj, beg=0,end=len(string))
    检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
    string.endswith(obj, beg=0,end=len(string))
    检查字符串是否是以 obj 结尾,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
    string.isalnum()		所有字符都是字母或数字则返回 True,否则返回 False
    string.isalpha()		所有字符都是字母则返回 True,否则返回 False
    string.isdigit()		所有字符都是数字则返回 True,否则返回 False
    string.isupper()		所有字符都是大写则返回 True,否则返回 False
    string.islower()		所有字符都是小写则返回 True,否则返回 False
    string.isspace()		只包含空格则返回 True,否则返回 False

常见操作-大小写

    string.capitalize()
        把字符串的第一个字符大写
    string.upper()
        转换 string 中的小写字母为大写
    string.lower()
        转换 string 中的大写字母为小写

常见操作-对齐

    string.ljust(width)
        返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
    string.rjust(width)
        返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
    string.center(width)
        返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

常见操作-裁剪

    string.strip([obj])
        删除 string 字符串前后的的obj,如果不传参数,删除前后空格
    string.lstrip([obj])
        删除 string 字符串左面的obj,如果不传参数,删除左面空格
    string.rstrip([obj])
        删除 string 字符串右面的obj,如果不传参数,删除右面空格

常见操作-合并

   string.join(seq)
   以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串  

常见操作-编码解码

    string.encode(encoding='UTF-8', errors='strict')
        以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
    bytes.decode(encoding='UTF-8', errors='strict')
        以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'

扩展:
整数 字符 互转
字符->整数:x=ord("a")
整数->字符:x=chr(97)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值