不爱学习的刘同学

导航

8_字符串

# 字符串
'''
字符串是由若干个不同的Unicode字符组成的不可变有序序列
'''

# 1.创建字符串
"""
单引号字符串
str1 = '张三'
双引号字符串
str2 = "李四"
三引号字符串,多行字符串
str3 = '''
王五爱张三
张三爱李四
李四爱王五
'''

"""

# 2.获取字符
'''
因为是不可变序列,所以不能修改单个字符;凡是修改字符串的操作都能产生新的字符串

str1 = "老鼠爱大米"
print(str1[0],str1[-1]) ==> 老,米

'''

# 3.字符串转义
'''
常见转义字符
转义字符 说明
\' 单引号
\" 双引号
\n 换行
\r 回车
\t tab
\\ \

原生字符
如果在字符串中不把\当做转义字符,可以使用
str1 = r'C:\Misc\BrSelfExp'
print(str1) ==> C:\Misc\BrSelfExp

'''

# 4.序列通用操作
'''

字符串拼接
#对于字符串字⾯值,只要相邻两个字符串中间没有其他字符就会⾃动拼接为⼀个字符

str1 = '床前明月光'
'疑是地上霜'
print(str1) ==> 床前明月光疑是地上霜
其他情况使⽤+运算符拼接字符串
str1 = '你好'
str2 = ' 树先⽣'
print(str1 + '世界')
print(str1 + str2)

字符串重复
str1 = '汪' * 3
print(str1) ==> 汪汪汪

成员操作
str1 = '天要下⾬,由他去吧'
if '天' in str1:
print('是成员')
else:
print('不是成员')

字符串截取(切⽚)
str1 = '123456'
print(str1[0:2]) #'12'
print(str1[1:]) #'23456'
print(str1[::2]) #'135'
print(str1[:]) #'123456'
print(str1[::-1]) #'654321'

字符串⻓度
print(len(str1))
'''
# 5.字符串常用函数
'''
ctrl + 鼠标右键查看该函数用法,可指定其他参数

1.字符串的查找和替换
str1 = 'Accept yourself and love yourself for who you are'

str.count(sub,start=0,end=len(str)) ==> 查找子串sub出现的次数,start开始下标,end结束下标

str.find(str,beg=0,end=len(str)) ==> 从左向右检测字符串中书否包含子字符串str,如果包含返回下标
否则返回-1。beg和end是可选的参数,指定查找的范围
str.rfind(str,beg=0,end=len(str)) ==> 从右向左

str.index(sub) ==> 作⽤类似find,但⼦串sub不存在会报错ValueError

str.rindex(sub) ==> 从右向左

str.replace(old, new) ==>返回⼀个新字符串,原串中的old被替换为new,可选参数count指定替换次数。

2.字符串分隔和组合
str.split(sep) ==> 将字符串拆分为以sep为分隔符的列表

str.rsplit(sep) ==> 作用同上,从右向左

str.partition(seq) ==> 将字符串拆分为一个有三个元素的元祖

str.rpatition(seq) ==> 作用同上

str.splitlines(seq) ==> 拆分一个包含多行的字符串,以每行为一个元素返回一个列表

str.join(seq) ==> 以指定字符串str作为分隔符,将seq对象中所有的元素合并为一个新的字符串;seq可以是字符串、列表等

3.字符串判断
str.isalpla() ==> 判断字符串是否由字母构成并且只包含字母,如果是返回True,反之False

str.isalnum() ==> 检测字符串是否由字母和数字组成,如果都是由字母和数字组成返回True,反之False

str.isdigit() ==> 检测字符串是否由数字构成,可检测byte类型

str.isnumeric() ==> 检测字符串是否由数字构成,可以检测汉子数字:十

str.isspace() ==> 检测字符串是否只有空格或tab构成

str.islower() ==> 检测字符串中字母字符是否全部由小写字母组成

str.isupper() ==> 检测字符串中的字母字符是否全部由大写字母组成

str.startswith(seq) ==> 用于判断字符串是否以指定子字符串开头,如果是则返回True,反之返回False

str.endswith(seq) ==> 用于判断字符串是否以指定子字符串结尾,如果是则返回True,反之返回False

4.字符串转换
str.lower() ==> 字符串转小写

str.upper() ==> 字符串转大写

str.swapcase() ==> 把字符串中的大小写字母互换,大写转换成消息,小写转换成大写。不管非字母类字符。

str.capitalize() ==> 将字符串的第一个字符转换成大写,其余的转换成小写

str.title() ==> 字符串中每个单词的首字母大写,其余小写

str.lstrip() ==> 去除字符串左边指定的字符,默认是去除空格

str.rstrip() ==> 去除字符串左边指定的字符,默认是去除空格

str.strip() ==> 去除字符串两边指定的字符,默认是去除空格

5.其他方法
将其他类型转换成字符串
print(str(90))

ord() 返回一个字符所对应的码值
print(ord('a'))
print(ord('中'))

chr() 输入一个unicode码,返回一个对应的字符。
print(chr(20013))

eval() 将字符串当做代码执行
age = 1
print(eval('age + 3')) ==> 4
print(eval('+123')) ==> 123
print(eval('3 + 2')) ==> 5

repr() 返回一个对象的String格式,适合机器执行
a = [20,30]
s1 = repr(a)
list1 = eval(s1)
list2 = str(a)
print(a == list1)

'''

# 6.字符串格式化
'''
用%格式化
typecode: d 将数值转换为整型显示;f 将数值转换为浮点数显示 s将数值转换为字符串显示

#⼤家好,我叫 王尼玛,我今年35岁了,我有5000000.687
print("⼤家好,我叫%s,我今年%d岁了,我有%f" % ('王尼玛',35,5000000.687))

用format格式化 {name}".format(name="seven")

tp1 = "I am {}, age {}, {}".format("seven", 18, 'alex')

tp2 = "I am {name}, age {age}, really

print(tp1) #I am seven, age 18, alex
print(tp2) #I am seven, age 18, really seven
print(tp3) #I am seven, age 18, money 88888

'''


posted on 2022-04-01 14:04  不爱学习的刘同学  阅读(129)  评论(0编辑  收藏  举报