目录
什么是python字符串
如何表示一个字符串
字符串的访问
print()
索引
for循环
打印字符--end()
切片split
范围选择符 [ n : m ]
字符串长度
使用len()函数
replace() 用另一段字符串来替换字符串
检查字符串 in/not in
字符串相加相乘
字符串中的判断--方法
字符串是 Python 中最常用的数据类型
python 中的字符串字面量由单引号或双引号括起。
myString1='abcdef'
myString2="hijklm"
也可使用三对单引号来表示一个长字符串
myString3='''you need to clam down, you need to clam down, you need to clam down,
you need to cam down'''
只要在引号范围内就是有效内容
字符串
直接使用print()打印字符串
myString1='abcdef'
print(myString1)
print("myString 1 is "+myString1)
#输出结果
#abcdef
#myString 1 is abcdef
类似数组
for letter in myString1:
print(letter)
#结果如下
#a
#b
#c
#d
#e
#f
把字符串中每个字符切片成“字符”+“\n" 打印出来
但是我们有些情况下不想打印成这种形式,想要一个完整的句子
这时就要使用end()函数了
将字符末端的 ' \n '替换为end( )函数中括号里的内容
最普遍的是
for letter in myString1:
print(letter,end='')
#输出结果
#abcdef
比较个性的
for letter in myString1:
print(letter,end='*&*')
#输出结果
#a*&*b*&*c*&*d*&*e*&*f*&*
当然一切以实际需求为准哈哈
获取字符串中的一部分有两种方法,split方法和范围选择符 [ n : m ]
将字符串拆分成列表
可以不对分隔符作出限制
str1=myString1.split()
print(str1)
#输出结果
#['abcdef']
一个参数
也可在split方法中添加限制,分隔符不被写入列表
myString2='abcabcabc'
str2=myString2.split('b')
print(str2)
#输出结果
#['a', 'ca', 'ca', 'c']
常见的分隔
myString3='a-good-boy'
str3=myString3.split('-')
print(str3)
#输出结果
#['a', 'good', 'boy']
两个参数
第一个是分隔符,第二个是检测几次分隔符。默认为-1(即全部分隔符)
myString3='a-good-boy-a-good-boy'
str3=myString3.split('-',3)
print(str3)
#输出结果
#['a', 'good', 'boy', 'a-good-boy']
可以说字符串和数组十分相似,数组可以使用的方法同样适用于字符串
在此强调一点split方法是对原字符串的拷贝,并不改变原来的字符串
myString3='a-good-boy-a-good-boy'
myString4=myString3[2:10]
print(myString3)
print(myString4)
#输出结果
#a-good-boy-a-good-boy
#good-boy
结合for循环更好用哦
for letter in myString3[2:10]:
print(letter,end='')
#输出结果
#good-boy
当然也可以把字符串连起来
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
join 方法, 下面代码中的‘ * ’充当链接符,可以替换成任何字符
myString3='a-good-boy-a-good-boy'
str3=myString3.split('-')
print(str3)
str4='*'.join(str3)
print(str4)
#输出结果
#['a', 'good', 'boy', 'a', 'good', 'boy']
#a*good*boy*a*good*boy
myString1='abcdef'
lengthOfStr1=len(myString1)
print('lengthOfStr1 is '+str(lengthOfStr1))
#输出结果
#lengthOfStr1 is 6
至少要有两个参数,第一个参数是旧的字符串,第二个是替换后的字符串
myString1='abcdefabcdefabcdef'
str4=myString1.replace('a','A')
print(myString1)
print(str4)
#输出结果
#abcdefabcdefabcdef
#AbcdefAbcdefAbcdef
第三个参数是设定替换次数的,默认为全部的
myString1='abcdefabcdefabcdef'
str4=myString1.replace('a','A',1)
print(myString1)
print(str4)
#输出结果
#abcdefabcdefabcdef
#Abcdefabcdefabcdef
令我印象最深的就是力扣的一道题,用python刷的一下就出来了
替换空格 答案
return s.replace(' ','%20')
检查某个字符、字符片段是否在字符串内 返回一个布尔值
myString5='You need to calm down'
x='cal' in myString5
y='ooo' in myString5
z='ooo' not in myString5
print(type(x))
print(x)
print(y)
print(z)
#输出结果
#
#True
#False
#True
运算符号系列
+ 链接两个字符串
myString6='123456'
myString7='abcd'
str5=myString6+myString7
print(str5)
#输出结果
#123456abcd
*重复字符串中的内容
myString7='abcd'
str6=myString7*4
print(str6)
#输出结果
#abcdabcdabcdabcd
判断字符内容,返回布尔值
isalnum() | 字符是否为字符或数字 |
isalpha() | 字符是否为字母 |
isdigit() | 字符是否为数字 |
isdecimal() | 字符是否为小数 |
判断字符串中的数字的两种方法
count=0
cnt=0
str='at 9 o\'clock to reach work at 10 am.'
for m in str:
#方法一
if(m>='0'and(m<='9')):
cnt+=1
#方法二
if(m.isdigit()):
count+=1
print(count)
print(cnt)
#输出结果
#3
#3
搜索
count() | 返回指定值在字符串中出现的次数 |
find() | 在字符串中搜索指定的值并返回它被找到的位置 |
index() | 在字符串中搜索指定的值并返回它被找到的位置 |
str='at 9 o\'clock to reach work at 10 am.'
n= str.count('a')
print(n)
#输出结果
#4
格式化
capotalize() | 首字符为大写 |
casefold() | 把字符串转化成小写 |
upper() | 把字符串转化成大写 |
swapcase() | 切换大小写 |
tittle() | 把每个单词的首字符转换成大写 |
startwith()/endwith() | 以指定值开头、结尾的字符串,返回布尔值 |
test=open('para1.txt','r')
for line in test:
if(line.startswith('The')or line.startswith('You')or
line.startswith('Please')):
print(line.upper())
if(line.endswith('unit\n')or line.endswith('document\n')):
print(line.lower())
if (line == ''):
break
test.close()