一、概念
在Python中用单引号或双引号引起来的内容
定义
s = 'abc123'
s = "abc"
s = '' #空字符串
s = "" #空字符串
s = ' ' #空格字符串
s = " " #空格字符串
注意:空格字符串不是空字符串
二、字符串的访问(重要)
1.下标索引
下标索引一般从0开始,依次往后
a | b | c | d | e | |
---|---|---|---|---|---|
正向索引 | 0 | 1 | 2 | 3 | |
反向索引 | -4 | -3 | -2 | -1 |
通过元素遍历
s = "abcdef"for i in s:print(i, end=' ')
print()
通过下标遍历
s="abcdef"
for i in range(len(s)):print(s[i], end=' ') # i是下标 编号 s[i]通过下标i找到的元素
print()
2.切片访问
切片是对操作对象的某一部分进行操作。对象可以是字符串、列表、元组等。
1.语法
标识符[起始值:终止值:步长值]
注意:和range函数一样,区间是前闭后开的。
[起始值 , 终止值) 包含起始值 不包含终止值
s = "abcd123"
#没有冒号,就是单纯的下标,取到一个元素值
print(s[0])
#省略终止值,默认是序列的结尾 和range函数有区别
print(s[0::1])
#省略起始值,默认是 0
print(s[:3:1])
#省略步长值,默认是 1
print(s[1:3:])
print(s[::])
s = 'Hello World!'
print(s[:]) #省略起始值和终止值
print(s[1:]) #省略终止值,从下标1开始
print(s[:5]) #省略起始值,到下标4结束
print(s[1:5:2]) #从下标1到下标4,步长为2
print(s[:-1]) #从下标0到逆序下标-2[倒数第二个]
print(s[-4:-1]) #从下标-4到下标-2
print(s[::-1]) #省略起始值和终止值,步长为-1,也就是逆序
练习
判断是否是回文字符串
s=input("输入一个字符串")
flag=1
for i in range(len(s)//2):if s[i]!=s[-i-1]:flag=0break
if flag:print("是回文字符串")
else:print("不是回文字符串")
三、字符串有关的函数
1.查询相关字符串
函数 | 描述 |
find() | 检测字符串是否包含指定字符,如果是返回开始的索引值,否则返回-1 |
index() | 检测字符串是否包含指定字符,如果是返回开始的索引值,否则提示错误 |
rfind() | 从右向左,检测字符串是否包含指定字符,如果是返回开始的索引值,否则返回-1 |
rindex() | 从右向左,检测字符串是否包含指定字符,如果是返回开始的索引值,否则提示错误 |
s="hello world"
print(s.find('l'))
print(s.rfind("l"))
print(s.index('l'))
print(s.rindex('l'))
2.转换函数
函数 | 描述 |
lower() | 将字符串转换为小写 |
upper() | 将字符串转换为大写 |
title() | 将字符串中每个单词的首字母大写 |
capitalize() | 只讲字符串的首字母大写,其他字母全部小写 |
strip() | 去除字符串两端的空格 |
s = 'Hello World'
print(s.lower())
print(s.upper())
print(s.title())
print(s.capitalize())s1 = " aaaa bbbb cccc "
print(s1.strip())
3.判断函数
函数 | 描述 |
startswith() | 检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False |
endswith() | 检查字符串是否是以 obj 结尾, 是则返回 True,否则返回 False |
isspace() | 如果 str1 中只包含空格,则返回 True,否则返回 False. |
isalnum() | 如果 str1 所有字符都是字母或数字则返回 True,否则返回 False |
isdigit() | 如果 str1 只包含数字则返回 True 否则返回 False |
isalpha() | 如果 str1 所有字符都是字母 则返回 True,否则返回 False |
从键盘输入一串字符串,先将所有大写转换成小写, 再移除其中的非数字字母字符之后,判断是不是回文字符串
s=input("输入字符串")
s=s.lower()
s1=''
for i in s:if i.isalnum():s1+=i
if s1[::]==s1[::-1]:print("是回文字符串")
else:print("不是回文字符串")
.4 .分割函数
函数 | 描述 |
partition | 可以将字符串以str1进行分隔成三个部分 |
rpartition | 从右向左,可以将字符串以str1进行分隔成三个部分 |
split | 不包含分隔符,如果maxsplit有指定值,则仅分割 maxsplit 个子字符串 |
splitlines | 按照行分隔,返回一个包含各行作为元素的列表 |
从请求地址中提取出用户名和域名
s='https://www.baidu.com?userName=admin&pwd=123456'
s1=s.split('?')
print(s1[0])
s2=s1[1].split('=')
s3=s2[1].split('&')
print(s3[0])
print(s2[2])
5.其他常用函数
函数 | 描述 |
count | 返回str1在string中指定索引范围内[start,end]出现的次数 |
join | 是使用某个字符串作为拼接符 print( 字符串.join(变量) ) |
replace | 将string中的str1替换成str2,如果指定count,则不超过count次 |
len | 返回字符串的长度值 |
mstr='good good study ,day day up; '
nstr=' No Pain No Gain '
print(mstr+nstr)
print(len(mstr))
for i in nstr:print(i,end="")
print()
print(nstr.count('o'))
print(nstr.strip())
print(mstr.upper())
print(mstr.lower())
print(mstr.split(' '))