Python中字符串(str)详解

字符串(str)

字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型
在Python中字符串需要使用引号引起来
引号可以是双引号,也可以是单引号,但是注意不要混着用

s = 'hello'
s = "hello"

相同的引号之间不能嵌套

# s = "子曰:"学而时习之,乐呵乐呵!""
s = '子曰:"学而时习之,乐呵乐呵!"'
长字符串

单引号和双引号不能跨行使用

s = '锄禾日当午,\
汗滴禾下土,\
谁知盘中餐,\
粒粒皆辛苦'

使用三重引号来表示一个长字符串 ‘’’ “”"
三重引号可以换行,并且会保留字符串中的格式

s = '''锄禾日当午,
汗滴禾下土,
谁知盘中餐,
粒粒皆辛苦'''
转义字符

可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
例子:
’ 表示’
" 表示"
\t 表示制表符
\n 表示换行符
\ 表示反斜杠
\uxxxx 表示Unicode编码

s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""

s = '\u2250'
print(s)

python的字符串内建函数

# 方法	                                                          描述
# string.capitalize()                                       把字符串的第一个字符大写

# string.center(width)                                      返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
    
# string.count(str, beg=0, end=len(string))                 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

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

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

# string.endswith(obj, beg=0, end=len(string))              检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

# string.expandtabs(tabsize=8)                              把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。

# string.find(str, beg=0, end=len(string))                  检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

# string.format()                                           格式化字符串

# string.index(str, beg=0, end=len(string))                 跟find()方法一样,只不过如果str不在 string中会报一个异常.

# string.isalnum()                                          如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

# string.isalpha()                                          如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

## string.isdecimal()                                        如果 string 只包含十进制数字则返回 True 否则返回 False.

# string.isdigit()                                          如果 string 只包含数字则返回 True 否则返回 False.

# string.islower()                                          如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

# string.isnumeric()                                        如果 string 中只包含数字(全角数字、汉字数字)字符,则返回 True,否则返回 False

# string.isspace()                                          如果 string 中只包含空格,则返回 True,否则返回 False.

# string.istitle()                                          如果 string 是标题化的(见 title())则返回 True,否则返回 False

# string.isupper()                                          如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

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

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

# string.lower()                                            转换 string 中所有大写字符为小写.

# string.lstrip()                                           截掉 string 左边的空格

# string.maketrans(intab, outtab)                           maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

# max(str)                                                  返回字符串 str 中最大的字母。

# min(str)                                                  返回字符串 str 中最小的字母。

# string.partition(str)                                     有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.

# string.replace(str1, str2,  num=string.count(str1))		   把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.

# string.rfind(str, beg=0,end=len(string) )					类似于 find() 函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。

# string.rindex( str, beg=0,end=len(string))					类似于 index(),不过是从右边开始.

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

# string.rpartition(str)										类似于 partition()函数,不过是从右边开始查找

# string.rstrip()												删除 string 字符串末尾的空格.

# string.split(str="", num=string.count(str))					以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+1 个子字符串

# string.splitlines([keepends])								按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

# string.startswith(obj, beg=0,end=len(string))				检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.

# string.strip([obj])											在 string 上执行 lstrip()和 rstrip()

# string.swapcase()											翻转 string 中的大小写

# string.title()												返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

# string.translate(str, del="")								根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中

# string.upper()												转换 string 中的小写字母为大写

# string.zfill(width)											返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
格式化字符串
a = 'hello'

字符串之间也可以进行加法运算
如果将两个字符串进行相加,则会自动将两个字符串拼接为一个

a = 'abc' + 'haha' + '哈哈'
#a = 123 

字符串只能不能和其他的类型进行加法运算,如果做了会出现异常 TypeError: must be str, not int

 print("a = "+a) # 这种写法在Python中不常见
a = 123
 print('a =',a)

在创建字符串时,可以在字符串中指定占位符
%s 在字符串中表示任意字符
%f 浮点数占位符
%d 整数占位符

b = 'Hello %s'%'孙悟空'
b = 'hello %s 你好 %s'%('tom','孙悟空')
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间
b = 'hello %s'%123.456
b = 'hello %.2f'%123.456        #四舍五入 输出 123.46
b = 'hello %d'%123.95
b = '呵呵'

 print('a = %s'%a)

格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串

在格式化字符串中可以直接嵌入变量
c = f'hello {a} {b}'

print(f'a = {a}')
# 创建一个变量来保存你的名字
name = '孙悟空'

# 使用四种方式来输出,欢迎 xxx 光临
# 拼串
print('欢迎 '+name+' 光临!')
# 多个参数
print('欢迎',name,'光临!')
# 占位符
print('欢迎 %s 光临!'%name)
# 格式化字符串
print(f'欢迎 {name} 光临!')
字符串的复制(将字符串和数字相乘)
a = 'abc'
* 在语言中表示乘法

如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回

a = a * 20
print(a)

笔记为自己总结
来源为:尚硅谷李老师的课

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值