字符串数据类型

定义字符串,三种方式

双引号包裹

单引号包裹

三引号包裹

字符串是有序的字符容器

python-字符串方法_传参数

a = '''abcd'''
print(a, type(a))


# 获取某一个字符的值
# 字符串[索引值]
x = a[3]
print(x)
print(a[2])

python-字符串方法_git_02

字符串方法的使用格式

字符串.方法名称()

方法名称的意义

一般情况下,如果遇到了某个方法,以is开头

代表,是不是

python-字符串方法_自定义_03

1 判断验证方法

python-字符串方法_git_04

isspace

用于验证字符串是否是一个看不见的元素

已知的看不见的元素有

空格

换行符

制表符

回车符

s = "\r"
print(s)
res = s.isspace()
print(res)


python-字符串方法_传参数_05

》验证用户是否输入不可见内容

name = input('请输入用户名:')
if name.isspace():
    print('非法输入,请输入非空的内容')
else:
    print('正在注册用户', name)


python-字符串方法_git_06

isalpha

验证字符串是否由纯英文字母组成的

如果字符串由纯英文字母组成,大小写都可

那么结果为True

否则为False

s = "abBc"

r = s.isalpha()
print(r)

python-字符串方法_传参数_07

》医院录入新生儿名字验证

name = input("给孩子起个名字吧:")

if name.isalpha():
    print('名字OK,可以登记')
else:
    print('名字有问题,请给孩子起一个纯字母组成的名字')


python-字符串方法_换行符_08

isnumeric

验证是否是半角数字,全角数字,中文数字

s = "一"

res = s.isnumeric()

print('res is ' , res)

python-字符串方法_字符串_09

isdigit

验证数字

s = '\xb2'

res_isdigit = s.isdigit()
res_isnumeric = s.isnumeric()
print('res_isdigit', res_isdigit)
print('res_isnumeric', res_isnumeric)

python-字符串方法_自定义_10

isdecimal

纯阿拉伯数字字符串的验证,不验证乱七八造的

三种数字验证的比较

s = '46'

res_isdecimal = s.isdecimal()
res_isdigit = s.isdigit()
res_isnumeric = s.isnumeric()

print('res_isdecimal', res_isdecimal)
print('res_isdigit', res_isdigit)
print('res_isnumeric', res_isnumeric)


应用例子

age = input('请输入年龄:')


print(age.isdecimal())

if age.isdecimal():
    print('正确的年龄,保存中')
else:
    print('输入有误,再见')

python-字符串方法_换行符_11

islower

python-字符串方法_传参数_12

isalnum

验证字符串是否只由 字母数字组成

如果是,返回True,否则返回False

islower 与 lower方法

看到验证码 一般由大小写数字和英文组成的

# s = "ABC"
# res = s.lower()
# print(res)

isupper与upper方法

s = "sad"
res = s.isupper()
print(res)

r = s.upper()
print(r, type(r))

o = r.isupper()
print('o', o)

2 查找与替换方法

python-字符串方法_换行符_13

startswith 与 endswith

字符串.startswith()
字符串.endswith()

验证是否以某某开头,是否以某某结尾

s = "china-hero"
res = s.startswith('china')
print(res)


e = "one.ppt"
res = e.endswith('.txt')
print(res)

python-字符串方法_换行符_14

find

字符串.find(查询的字符,起始索引包含,终止索引不包含)

查询某个子字符串所在的位置

查询成功,返回所在的索引位置

python-字符串方法_字符串_15

如果查询不成功,返回值为 -1

python-字符串方法_字符串_16

参数二,参数三,代表了查询的起始位置与终止位置

python-字符串方法_换行符_17

rfind

从右边开始查

python-字符串方法_自定义_18
python-字符串方法_传参数_19

从右边开始查

找到了,返回索引,找不到,返回-1

index

字符串.index('搜索的词')

返回结果为查询到的索引值

如果查询不到,会报错

python-字符串方法_字符串_20
ValueError,子字符串,没有找到

rindex查找

小结四个查找

下面的方法, 查到了就返回对应的索引值

find(),从左往右查,查不到,返回-1

rfind(),从右往左查,查不到,返回-1

index(),从左往右查,查不到报错

rindex(),从右向左查,查不到报错

replace方法

s = '你好,小明同学'

res = s.replace('你好','早上好')
print(res)

python-字符串方法_传参数_21

3 大小写转换

python-字符串方法_git_22

capitalize()

title()

lower()

upper()

swapcase()

python-字符串方法_git_23

4 文本对齐

python-字符串方法_传参数_24

# s = '*'
#
# res = s.ljust(30)
# print(res,end='!')
# print()
# res2 = s.rjust(30,'$')
# print(res2, len(res2))
# res3 = s.center(30,'#')
# print(res3)


n = 1
while n<9:
    s = '*'*(n*2-1)
    res = s.center(40)  #                      ***
    print(res, end='')
    print()
    n += 1

5 去除边界

python-字符串方法_自定义_25

》strip方法可以去掉空字符串

例子:

s = "     abc     "

print('原始的字符串')
print(s)
print('......')
print('lstrip')
print(s.lstrip())
print('......')
print('rstrip')
print(s.rstrip())
print('......')
print('strip')
print(s.strip())

》strip方法可以去掉换行符 \n

》可去table符号 \t

例子:

s = '    abc   \t \n  \r '

res = s.strip()

print(1111)
print(res)
print(2222)

》自定义边界要清除的内容

# s = '  a    !!!!ppppp!!!!!!!'
s = 'ppppp'

# res = s.strip("! a")  # strip传参数,就会左右两边扒掉这个参数
# res = s.strip()  # strip不传参数,默认清除左右两边的空白符号
# print(res)


p = "abc 哈哈 mpq"

res = p.lstrip("abc ")
print(res)
m = res.rstrip(' mpq')
print(m)
拆分与连接

python-字符串方法_自定义_26

》partitions相关的例子

例子:

s = "aaa bbb ccc bbb ddd"
res = s.rpartition('bbb')
print(res)


python-字符串方法_git_27

》split的例子

python-字符串方法_换行符_28

python-字符串方法_传参数_29

python-字符串方法_自定义_30
python-字符串方法_换行符_31

split自定义分割 字符

python-字符串方法_换行符_32

》join 连接

python-字符串方法_换行符_33