我是靠谱客的博主 美丽万宝路,这篇文章主要介绍python基础——数据结构之字符串数据结构数据结构之字符串,现在分享给大家,希望可以做个参考。

数据结构

内置数据结构

str 字符串

list 列表

tuple 元组

dict 字典

set 集合

数据结构之字符串

创建字符串很简单,只要为变量分配一个值即可,或者使用’或者“来创建字符串

复制代码
1
2
3
var1='hello python' str1="hello python"

1.字符串求长度

len(str1);

复制代码
1
2
3
4
var1="hello world" print(len(var1)) >>>11

2.字符串拼接

使用+连接字符串,使用*多次输出

复制代码
1
2
3
4
5
6
7
8
9
10
11
var1="hello world" var2=" nihao" print(var1 + var2) >>> hello world nihao var1="hello world " var2=" nihao" print(var1 * 3) >>>hello world hello world hello world

3.字符串遍历

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var1="hello world " for a in var1: print(a) >>> h e l l o w o r l d var1="hello world " for a in var1: print(a,end=" ") >>> h e l l o w o r l d

4.字符串包含判断

复制代码
1
2
3
4
5
6
7
var1="hello world " if "w" in var1: print("在") else: print("不在") >>>

5.字符串索引

复制代码
1
2
3
4
5
6
7
var1="hello world" print(var1[0],var1[1]) #正向索引 print(var1[-1],var1[-2]) #反向索引 >>> h e d l

6.字符串切片

复制代码
1
2
3
4
5
6
7
8
9
10
11
var1="hello world" print(var1[0:4]) >>> hell #冒号前后的数字也可不写,[:4] [4:]下标4之后的数 var1="hello world" print(var1[0:4:2]) #下标0-4的所有数据,步长为2 >>> hl

常见字符串内置函数

str.strip([chars])

​ print(sample_fun1.strip()) 默认取消掉首尾空格

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
str1=" hello " print(str1,end="") str2="world" print(str2) >>> hello world #输出有空格,字符串未连接在一起 str1=" hello " str1=str1.strip() print(str1,end="") str2="world" print(str2) >>> helloworld #输出没有空格,字符串连接在一起

​ print(sample_fun1.strip(’#’)) 指定首尾需要删除的字符#

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
str1=" hello " str1=str1.strip() print(str1,end="") str2="world#" print(str2) >>> helloworld# str1=" hello " str1=str1.strip() print(str1,end="") str2="world#" str2=str2.strip("#") print(str2) >>> helloworld

str.count(‘chars’,start,end)

统计chars字符串或者字符在str中出现的次数,从start顺序开始查找一直到end顺序范围结束

(默认从顺序0开始)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
str1="123A456A789A0" n=str1.count("A") print(n) >>> 3 #从开始查找A出现的次数 str1="123A456A789A0" n=str1.count("A",0,7) print(n) >>> 1 #指定查找的起点与终点

str.capitalize() 将字符串的首字母大写

复制代码
1
2
3
4
5
str1="abc" print(str1.capitalize()) >>> Abc

str.isupper() 判断字符串是否全是大写

str.islower() 判断字符串是否全是小写

str.low() 将字符串中的字母全部转换为小写字母

str.upper() 将字符串中的字母全部转换为大写字母

str.find(‘str’,start,end)

查找并返回子字符‘str’在start到end范围内首次出现的下标位置(默认范围从字符串开头到结尾)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
str1="abc123dsdkendoekdn" str2="123" print(str1.find(str2)) >>> 3 #同样也可以设置查找范围起点和终点的下标 str1="abc123dsdk123endoekdn" str2="123" print(str1.find(str2,4,15)) >>> 10

str.index(‘str’,start.end)

同上,但是没有字符会报错

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
str1="abc123dsdkendoekdn" str2="12345" print(str1.find(str2,4,15)) >>> -1 str1="abc123dsdkendoekdn" str2="12345" print(str1.index(str2,4,15)) >>> Traceback (most recent call last): File "D:pythonProjectdemo2.py", line 17, in <module> print(str1.index(str2,4,15)) ValueError: substring not found

str.replace(oldstr,newstr,conut)

用旧的字符串替换新的子字符串,若不指定count数量则为全部替换(规避掉敏感字符)

复制代码
1
2
3
4
5
6
7
str1="abc123dsdken123doekdn" str2="@@@@" str3="123" print(str1.replace(str3,str2)) >>> abc@@@@dsdken@@@@doekdn

str.split(sep,maxsplit)

将字符串按照指定的sep字符进行分割,形成列表返回

maxsplit是指定需要分割的次数,若不指定sep默认是分割空格

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#默认使用空格进行分割 str1="abj hsdkhd dkshdkjshdw 137289dsjl" print(str1.split(" ")) >>> ['abj', 'hsdkhd', 'dkshdkjshdw', '137289dsjl'] #使用#进行分割 str1="abj hsdkhd#dkshdkjshdw 137289dsjl" print(str1.split("#")) >>> ['abj hsdkhd', 'dkshdkjshdw 137289dsjl'] #使用#进行分割,只分割一次 str1="abj hsdkhd#dkshdkjshd#w 13728#9dsjl" print(str1.split("#",1)) >>> ['abj hsdkhd', 'dkshdkjshd#w 13728#9dsjl']

str.join(list)

与str.split(sep,maxsplit)相反,将列表返还回字符串形式

复制代码
1
2
3
4
5
6
lt=['1','2','3'] str1="".join(lt) print(str1,type(str1),type(lt)) >>> 123 <class 'str'> <class 'list'>

str.isalnum()

字符串是由字母或者数字组成,是则返回true,否则返回false(大小写不影响)

复制代码
1
2
3
4
5
6
7
8
9
10
str1="abc123ds@dken1--23do*ekdn" print(str1.isalnum()) >>> False str1="abc123dsdken123doekdn" print(str1.isalnum()) >>> True

str.isalpha()

字符串是否全是由字母组成的

str.isdigit()

字符串是否全是由数字组成,是则返回true,否则返回false

练习题

1.计算用户输入的字符串内容有几个十进制数字?几个英文字母?

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#第一种 内置函数 str=input("请输入任意字符串:") print(str) num1=0 num2=0 for x in str: if x.isalpha(): num1=num1+1 elif x.isdigit(): num2=num2+1 print("字母是 %d 个,数字是 %d 个"%(num1,num2)) >>> 请输入任意字符串:bsbfsfbj123--= bsbfsfbj123--= 字母是 8,数字是 3#第二种 ascii码 str=input("请输入:") print(str) num1=0 num2=0 for x in str: if x <= '9' and x >= '0' : num1=num1+1 elif x <= 'z' and x >= 'a' : num2=num2+1 print("数字是 %d 个,字母是 %d 个"%(num1,num2)) >>> 请输入:bsbfsfbj123--= bsbfsfbj123--= 数字是 3,字母是 8

2.开发敏感词语过滤程序,提示用户输入内容

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
while True: name=input('请输入内容:') if "台独" in name or "法轮功" in name: v = name.replace("台独","***") v1= v.replace("法轮功","***") print(v1) exit() else: print(name) >>> 请输入内容:敏感词语过滤程序,提示用户输入内容 台独 敏感词语过滤程序,提示用户输入内容 ***

最后

以上就是美丽万宝路最近收集整理的关于python基础——数据结构之字符串数据结构数据结构之字符串的全部内容,更多相关python基础——数据结构之字符串数据结构数据结构之字符串内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部