name = 'Jim' # name = str('jim')
str1 = str(1.1)
str2 = str([1, 2,3])
print(f'str1:{str1} ,str1_type:{type(str1)}')
print(f'str2:{str2},str2_type:{type(str2)}')
'''
结果:
str1:1.1 ,str1:<class 'str'>
str2:[1, 2, 3],str2_type:<class 'str'>
自己总结:str()或者单双引号定义之后在内存中就是字符串,不管是任何形式?
'''
按索引取和值切片(只读不能写)
name = 'Cyberpunk2077'
print(name[0])
print(name[-1]) #负数从有往左从1开始取值
print(name[2:5]) #顾头不顾尾切片
print(name[2:]) #不写默认到末尾
print(name[1:9:2]) #在位置1-9之间步长为2取值
print(name[2::-2]) #步长为负数从右往左取值
'''
结果:
C
yepn
C
7
ber
berpunk2077
yepn
bC
'''
成员运算in和not in,返回布尔值
str.strip(),其中str.lstrip()和str.rstrip()分别是去除左边和右边的
name = " Cyber punk 2077 "
print(name.strip())
'''
结果:
Cyber punk 2077
默认去除两端的空格
'''
str.split(),其中str.rsplit()从右边开始切割
name = " Cyber pu:nk 2077 "
print(name.split())
print(name.split(':'))
'''
默认空格切割返回一个列表
['Cyber', 'pu:nk', '2077']
[' Cyber pu', 'nk 2077 ']
'''
for循环返回每个字符
name = ' Ji:m '
for i in name:
print(i)
'''
结果:
J
i
:
m
'''
lower()和upper() 字母变小写和大写
name = 'Cyberpunk2077'
print(name.lower())
print(name.upper())
stratswith()和endswith() 判定开头和结尾
name = 'Cyberpunk2077'
print(name.startswith('c'))
print(name.endswith('7'))
'''
结果:
False
True
'''
str.isdigit():字符串是否只有数字组成,是返回True,不是返回False(相似的有str.isdecimal()、str.isnumric(),前者检查是否包含十进制字符,后者检查是否只包含数字字符)
year = '2077'
π = '3.14159'
print(year.isdigit())
print(π.isdigit())
'''
结果:
True
False
'''
str.find(str1):如果发现找到str1在str中,并返回第一次开始的索引值,否则返回-1;str.rfind()则是从右往左,也就是最后一次出现的位置,没有找到返回-1
str = "this is really a string example....wow!!!";
substr = "is";
print str.rfind(substr);
print str.rfind(substr, 0, 10);
print str.rfind(substr, 10, 0);
print str.find(substr);
print str.find(substr, 0, 10);
print str.find(substr, 10, 0);
'''
结果
5
5
-1
2
2
-1
'''
str.index()和str.rindex()同上一个方法这区别是找不到的时候报错
str.count()同上一个方法,只是它只为了记数,出现了多少次
str.center()、str.ljust()、str.rjust():默认空格填充到指定长度的字符穿,str在填充之后的中间,左边,右边;str.zfill()是0填充
str.captalize()、str.swapcase()、str.title():开头第一个字母转大写,其他全小写;大小写互转;每个单词开头字母大写
0