python基础之字符串

时间:2024-01-25 22:56:49

Python基础变量主要有字符型和数值型两种,相比于数值型数据,字符型数据可以理解成是一种文本,在语言领域的应用更加广泛。Python的字符串数据类型属于不可改变数据类型,所以当创建一个变量的类型为字符串时,这个变量的字符串的字符不可以修改或者删除,只能在一个新的变量上进行操作。

Python提供了以下几种方式去标识字符串(str):

  1. 单引号(')
  2. 双引号(")
  3. 三引号('''或者""")
'This is python'

"This is python" #双引号和单引号用法一样,但不能混用

'''\
This is python a
This is python b
This is python c''' #三引号相对于单引号或者双引号,自身有以个

Python字符串转义:

  1. 单引号转义
  2. 双引号与反斜杠转义
  3. 指定字符串
print('what's happend') #python不能辨识这段字符串从何处开始何处结束
输出结果:
File "D:/pystudy/字符串.py", line 129
    print('what's happend')
                ^
SyntaxError: invalid syntax

print('what\'s happend')#反斜杠转义单引号
输出结果:
what's happend
print(r'D:\name\python') #用r(R)指定r(R)后面的单引号或双引号标识的是一个字符串
输出结果:
D:\name\python

Python的字符串拼接(相加)和字符串相乘:

a = 'abc'
b = 'def'
c = a + b
print(c)
d = 'ac' * 8
print(d)
输出结果:
abcdef
acacacacacacacac

Python的字符串索引:

python的字符串索引分为正索引和负索引,通常说的索引就是指正索引。正索引是从0开始的,也就是第一个字母的索引是0,第二个索引是1,以此类推。负索引是从右到左去标记字母的,然后加上负号(-)。负索引的第一个值是-1而不是0,如果是0,那么会导致有两个索引0,这种情况是不允许的。

字符串  P   Y   T   H  O   N

索引      0   1   2    3   4   5

负索引 -6  -5  -4  -3  -2  -1

Python提取指定位置的字符:

 

name = 'python'
#  索引  012345
a = name[0]
b = name[4]
print(a)
print(b)
输出结果:
p
o

 

Python字符串切片和步长:

 

name = 'python'
#  索引 012345
a = name[0:3]#取字符串索引012 不包含3
b = name[:-1] #等于name[0:-1] 取字符串索引01234不包含-1,这里-1相当于5的意思
c = name[:6]
d = name[:]#从左到右取字符串
print(a)
print(b)
print(c)
print(d)
输出为:
pyt
pytho
python
python
#步长(默认步长为1)
e = name[0:3:2]#很明显这里加了个步长2,第一个索引为0,2的意思就是每次索引加2,所以下一个索引为0+2=2。
f = name[::2]#从左到右取字符,从第一个索引开始每个索引加2
g = name[-1:-4:-2]#因为从右到左取字符,为负索引,索引步长也需要为负。
h = name[::-1]#从右到左取字符,步长为-1,也就是反正字符串
print(e)
print(f)
print(g)
print(h)
输出为:
pt
pto
nh
nohtyp

 

Python字符串的方法:

 

全部大写:

name = 'jiaming'
new_name = name.upper()
print(new_name)
# 把这个字符串全部变成大写

全部小写:

name = 'JIAMING'
new_name = name.lower()
print(new_name)
# 把这个字符串全部变成小写

以什么开头:

name = 'jiaming'
new_name = name.startswith('jia')
if new_name:
    print('是以jia开头')
# 判断这是不是字符串是不是以jia开头的

以什么结尾:

name = 'jiaming'
new_name = name.endswith('ng')
if new_name:
    print('是以ng结尾')
# 判断这是不是字符串是不是以ng结尾的

统计出现的次数:

name = 'aaabbbccc'
new_name = name.count('a')
print(new_name)
# 统计name这个字符串中a出现的次数

字符串替换:

name = '我去你大爷的大爷的'
new_name = name.replace('大爷,'**',1)#第一个参数为要替换的字符或者字符串,第二个参数为要替换的内容,第三个参数是指从左到右替换多少个大爷。
print(new_name)
# 替换字符串中的内容

去除头尾两边的空格:

name = '    jiaming   '
new_name = name.strip()
new_name1 = name.lstrip()#左边的空格
new_name2 = name.rstrip()#右边的空格
print(new_name)
# 去除头尾俩遍的空格

分割:

name = 'jia,ming'
new_name = name.split(",")
print(new_name)
#通过,将字符串name进行切割

字符串格式化:

name = 'jiaming{}'
new_name = name.format('好靓仔')
print(new_name)
# 字符串格式化

is系列:

判断是不是阿拉伯数字,返回的是布尔值:

name = 'jiaming'
new_name = name.isdigit()
print(new_name)
# 判断是不是阿拉伯数字,返回结果是布尔值

判断是不是数字和字母,返回的是布尔值:

name = 'jiaming'
new_name = name.isalnum()
print(new_name)
# 判断是不是字母和数字,返回结果是布尔值

判断是不是纯字母和汉字,返回的是布尔值:

name = 'jiaming'
new_name = name.isalpha()
print(new_name)
# 判断是不是纯字母和汉字,返回的是布尔值

获取长度:

name = "jiaming"
print(len(name))
输出结果:
7