Python----字符串
"""
1.字符串定义:
使用双引号或单引号创建
"""
str = 'cyz'
str2 = "陈颍州"
"""
2.访问字符串的值
使用[]来截取字符串 截取的范围要合法,不合法返回值为''
变量[头下标:尾下标]
字符串是有下标的数据类型之一
从前往后的索引:0 1 2 3 ....
从后往前的索引:-n ....... -1
"""
str = 'myi name is chenyinzhou, i come from China!'
sbStr = str[:]
print(sbStr)
sbStr = str[1:]
print(sbStr)
sbStr = str[1:3]
print(sbStr)
sbStr = str[:3]
print(sbStr)
sbStr = str[1:-1]
print(sbStr)
sbStr = str[-1:]
print(sbStr)
sbStr = str[-5:1]
print(sbStr)
"""
3.字符串的内存情况
python中只要是字符串的值相等,那么他们的内存地址空间就是一样的,就是python中的字符串使用的
是池化技术
但是当字符串的值在字符串的常量池中没有相同的话那么python就会在内存中重新开辟一个新的内存地址
字符串变量被赋予的不是真正的字符值而是字符值所在的内存地址
"""
sbStr = 'cyz'
print(id(sbStr))
sbStr = 'ccc'
print(id(sbStr))
temstr = 'cyz'
print(id(temstr))
"""
4.字符串的更新
字符串是可变的数据类
字符串不可变,怎么更新:我们使用拼接的方法
"""
print(id(sbStr))
sbStr = '我叫陈颍州,我来自中国' + sbStr
print(sbStr)
print(id(sbStr))
"""
5.转义字符
“\”为转义字符,用来输出一些特殊符号的
"""
"""
6.字符串运算符
+ 字符串的拼接
* 重复输出字符串
[] 通过索引获得字符串的某一个字符
[:] 通过索引来截取字符串
in 成员运算符,字符串里面包含给定的字符返回真
not in 不包含返回真
r/R 就是可以让所有的字符串都可以按照字面上的字符来使用,只要在第一个引号前加上r or R
% 格式化字符串
"""
"""
7.格式化字符串
占位符:%
格式:'字符串%数据类型'%变量名
format方法:
格式:
位置映射:
"{} : {}".format('姓名','陈颍州')
关键字映射:
"{server}{0}{1}".format("姓名","陈颍州",server="计算机学生")
元素访问:
"{0[0]}{0[1]}{0[2]}".format(('cyz','123','yunyi'))
这里[]方括号前面的0就是format括号里面的元组的序号
"""
name = '陈颍州'
print("我的名字 :%s "%name)
print("{}==>{}".format("姓名","陈颍州"))
print("{}===>{}:{type}".format("姓名","陈颍州",type="计算机学生"))
print("{0[0]}===>{0[1]}--{0[2]}".format((1,2,3)))
"""
6.f-string
新的格式化字符串的方法
"""
"""
7.字符串的内建函数
1.capitalize() 将字符串的第一个字符转换为大写2
2.center(width[,fillchart]) 返回一个指定的宽度居中的字符串,注意:填充字符只能是一个字符
3.count(查找的字符串或字符[, 开始位置, 结束位置]) 返回某个字符串在字符串里面出现的次数
4.endswith(以某个字符结尾的字符[,开始位置, 结束位置]) 该方法只检查字符串末尾是否包含我们要
检索的字符串
5.expandtabs() 将字符串中的tab键转换为空格
6.find(目标字符串[, 开始, 结束]) 检测字符串中是否包含目标字符串,返回目标字符串开始的索引值,否则返回-1
7.index(目标字符串[, 开始, 结束]) 和find一样只不过,index找不到目标字符串的话会报一个异常
8.isalnum() 就是字符串至少有一个字符,并且这个字符串必须只能包含数字或者字母才返回true
9.isalpha() 字符串至少有一个字符,并且只能包含汉字或者字母才返回true
10.isdigit() 字符串只能包含数字才返回true
11.islower() 字符串里字符包含字母但是字母只能都是小写的字母是才返回true
12.isnumberic() 字符串里面只包含数字字符才返回true
13.join(seq) join方法的前面是分割符,用指定的字符串来作为分隔符,将seq中的所有的元素合并为一个新的字符串
就是将要合并的对象中的所有元素都进行以指定的分割符进行拼接成一个新的字符串
注意:这里的seq不仅仅是字符串还可以是元组、列表、字典、集合,合并的是字典的话,不合并值只是合并
键
14.len(string) 返回字符串的长度
15.lower() 转换为小写字母
16.lstrip() 截掉字符串左边的空格或者指定的字符
17.max(string) 返回字符串string中最大的字母,是按照ascoll码来排序
18.replace(old, new[, max]) max就是替换的最大次数
19.rfind() 和find()一样只不过rfind是从右边开始查找的,同理rindex()一样
20.split(分隔符,num) 以指定的分隔符来截取字符串,如果num指定了值,则仅截取num+1和子字符串
num就是指定截取的字符个数
返回结果是一个列表
21.swapcase() 将字符串中的小写转换为大写,将大写字符转换为小写
"""
sbStr = 'cyz is good boy'
print(sbStr.capitalize())
sbStr = 'cyz'
print(sbStr.center(100,'*'))
sbStr = 'qqqwsd sdahsjkdhf hhcyzhhcyzjscyzfhaksdjjj'
print(sbStr.count('cyz', 0, len(sbStr) - 1))
print(sbStr.count('cyz'))
sbStr = 'yunyischoolvueapp'
print(sbStr.endswith('vue'))
sbStr = 'cyz computer java python'
print(sbStr.expandtabs(tabsize=8))
sbStr = "technology of AI can change the word!"
print(sbStr.find('word'))
sbStr = 'aaaaa234234a'
print(sbStr.isalnum())
sbStr = '的绿卡好地方asdkjfh'
print(sbStr.isalpha())
sbStr = '287364872364'
print(sbStr.isdigit())
sbStr = 'cyz7868768卡号大家看法和'
print(sbStr.islower())
sbStr = '78612781asd263'
print(sbStr.isnumeric())
sbStr = '我是测试的字符串'
list = ['i','a','m','c','y','z']
set = {'1','2','3'}
dir = {
'name' : 'cyz',
'age' : 3,
'addr' : '安徽省'
}
newStr = '+'.join(sbStr)
print(newStr)
newStr = '+'.join(list)
print(newStr)
newStr = '+'.join(set)
print(newStr)
newStr = '+'.join(dir)
print(newStr)
sbStr = 'kjahsdfhlalsidfh'
print(len(sbStr))
sbStr = 'cyzkalksjdhfkcyzalksdjfcyzkslfj;acyzam,dfncyzjakldhfcyz'
print(sbStr.replace('cyz','TTT',2))
sbStr = 'www.yunyi.com'
print(sbStr.split('.',1))
sbStr = 'I am Cyz, I COme From CHina'
print(sbStr.swapcase())