python 字符串详解(附案例)

目录

什么是python字符串

如何表示一个字符串

字符串的访问

print()

索引

for循环

打印字符--end()

切片split

范围选择符 [ n : m ]

字符串长度

使用len()函数

replace() 用另一段字符串来替换字符串

检查字符串 in/not in

字符串相加相乘

字符串中的判断--方法


什么是python字符串

字符串是 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()

直接使用print()打印字符串

myString1='abcdef'

print(myString1)
print("myString 1 is "+myString1)
#输出结果
#abcdef
#myString 1 is abcdef

索引

类似数组

for循环

for letter in myString1:
    print(letter)

#结果如下
#a
#b
#c
#d
#e
#f

把字符串中每个字符切片成“字符”+“\n" 打印出来

但是我们有些情况下不想打印成这种形式,想要一个完整的句子

这时就要使用end()函数了

打印字符--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 ] 

切片split

将字符串拆分成列表

可以不对分隔符作出限制

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']

范围选择符 [ n : m ]

可以说字符串和数组十分相似,数组可以使用的方法同样适用于字符串

在此强调一点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

字符串长度

使用len()函数

myString1='abcdef'
lengthOfStr1=len(myString1)
print('lengthOfStr1 is '+str(lengthOfStr1))

#输出结果
#lengthOfStr1 is 6

replace() 用另一段字符串来替换字符串

至少要有两个参数,第一个参数是旧的字符串,第二个是替换后的字符串

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')

检查字符串 in/not in

检查某个字符、字符片段是否在字符串内 返回一个布尔值

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()

你可能感兴趣的:(python指南,python)