python--内置数据结构字符串

一.字符串的创建和赋值

1.字符串的命名方式

字符串或串由数字、字母、下划线组成的一串字符。可以通过单引号、双引号、三引号的方式创建它们。
第一种方式:str1=‘hello world’
第二种方式:str2=“hello world”
第三种方式:str3=(""“hello world”"")
第三种方式适用于定义一个由大面积字符组成的变量,如:
propt=(""“学生信息
录入学生信息
查找学生信息
删除学生信息
修改学生信息
“””)
print(propt)
**三重引号:**三重引号若是不用括号括起来还可以进行多行注释。

注意:字符串是不可变的数据类型,

如s=‘hello’ id(s)(查看s的内存地址)
s=‘world’ id(s)
这里的两个id,虽然都是s的内存地址,但是是不同的,因为字符串是固定存放在一个内存空间的,变化的是s第一指向的’hello’的内存地址,第二次指向的’world’的内存地址,所以只能通过del s删除字符串或者赋一个空字符串,但是一般不需要删除,因为在代码结束后,字符串占用的内存空间会自动释放

2.转义字符

一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符,表示转义:
\n 和\r 都可以换行
\t 水平制表符也叫空格–Tab键
\ b 退格
\ f 换页
\ v纵向制表符
\ ’ 和 ‘’ 当字符串既有单引号又有双引号时,可在重复的地方用此代替

3.删除字符和字符串

通过 del s删除字符串或者赋一个空字符串,但是一般不需要专门删除,因为在代码结束后,字符串占用的内存空间会自动释放

二.字符串的基本特性

1.连续操作符(+),重复操作符(*),计算长度

**连续操作符:**从原有字符串获得一个新的字符串
如:s1=‘hello’ s2=‘world’ s3=s1+s2
print(s3)—>‘hello world’
**重复操作符:**创建一个包含了原有字符串的多个拷贝的新字符串
如:‘*’10+‘学生管理系统’+‘’*10
即:学生管理系统

2.成员操作符

用来判断一个字符或者一个子串是否出现在另一个字符串中
出现则返回True,否则返回False
如:s=‘hello world’
‘l’ in s --True
‘a’ in s–False
‘a’ not in s-- True

3.序列操作符(切片和索引)

索引: 获得特定偏移的元素
分为正向索引和反向索引
正向索引:如‘hello’ 从左到右索引分别为 0,1,2,3,4 获取方式为‘hello’[0]=‘h’
反向索引:如‘hello’从右到左索引分别为-1,-2,-3,-4,-5 获取方式为’hello’[-1]=e
切片:

  • s[i:j] 提取对应的部分作为一个序列
  • 如果没有给出切片的边界,切片的下边界默认为0,上边界默认为字符串的长度
  • s[i:j:k] 其中i为下边界,j为上边界,k为步长
  • s[:] 表示获取从头到尾的所有元素,是实现拷贝的一种方法
  • s[::-1] 表示获取字符串的反转字符串
    ##4. 验证回文串(回文串的判断)
    比如:s=‘aba’
    s==s[::-1]
    True
    习题

5.标识符合法性检查

string模块: 常用于预定义的字符串,主要包含关于字符串的处理函数
string模块预定义的字符串:
string.ascii_letter(字母) string.ascii_lowercase(小写)
string.ascii_uppercase(大写) string.digits(数字)
string.whitespace(空格) string.punctuation(标点符号)
案例

字符串的内建方法

字符串的判断与转换

在这里插入图片描述
以上为字符串的一些常用的判断和转换内建方法
如:s=‘hello’
print(s.isalnum)—False
print(s.upper)—>HELLO
案例

2.字符串的开头和结尾匹配

在这里插入图片描述
如:filename=‘hello.log’
if filename.endswith(’.log’)
print(filename)
else:
print(‘error filename’)
import os: os.listdir() —列出指定目录中的所有文件名

3.字符串数据清洗

常用的数据清洗方式有:字符串操作、正则表达式、第三方库
常用数据清洗的字符串操作有:截取、替换、查找、分割

  • 截取:str[开始位置:结束位置:间隔位置] #默认开始位置为0#
  • 替换:str.replacce(‘被替换的内容’,‘替换后的内容’) #replace()方法替换字符串后仅为临时变量,需要新赋值才能保存#
  • 查找:str.fnd(‘要查找的内容’,[开始位置,结束位置]) #默认从0开始,返回查找目标中第一个遇到的要找的内容的位置,若未找到,则返回-1#
  • 分割:str.split(‘分隔符’,分割次数) #分割后,返回一个列表类型数据
  • 删除:str.strip() 删除字符串开头和末尾的空格 ;str.lstrip()删除字符串开头的空格;str.rstrip()删除字符串末尾的空格。
    字符串操作可以解析HTML,但纯字符串解析HTML会导致代码冗长,不便维护。字符串一般用于个别数据清洗,且数据具有一定的特征。

4.字符串的位置调整

str.center(width,’’) #字符串居中且长度为width指定的长度,’ * '表示空格用代替,也可以不标,为空格 #
str.ljust(width,‘ ’) #字符串左对齐且长度为width指定的长度,‘ ’指定用什么代替,也可省略#
str.rjust(width,’ ') #字符串右对齐且长度为width指定的长度,同上#

5.字符串的搜索,统计

  • s.find(str,begin,end) 检索str是否包含在s中,且检索的位置被指定,若不指定默认从头至尾,返回索引;若找不到返回-1
  • s.index(str,begin,end)通find一样,但是若检索不到则报错
  • s.count(str,begin,end) 检索s中str出现的次数,并指定范围,若不指定为从头至尾

6.字符串的分离与拼接

  • s.split(str=’ ‘,num=string.count(s)) 通过指定分隔符对字符串进行切片,如果num有指定值,则分割num+1个子字符串。如:str = “Line1-abcdef \nLine2-abc \nLine4-abcd”;
    print str.split( ); # 以空格为分隔符,包含 \n
    print str.split(’ ', 1 ); # 以空格为分隔符,分隔成两个
    以上实例输出结果如下:
    [‘Line1-abcdef’, ‘Line2-abc’, ‘Line4-abcd’]
    [‘Line1-abcdef’, ‘\nLine2-abc \nLine4-abcd’]
  • s,splitlines() 在输出结果里是否保留换行符(’\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。如:str1 = ‘ab c\n\nde fg\rkl\r\n’
    print str1.splitlines();
    str2 = ‘ab c\n\nde fg\rkl\r\n’
    print str2.splitlines(True)
    以上实例输出结果如下:
    [‘ab c’, ‘’, ‘de fg’, ‘kl’]
    [‘ab c\n’, ‘\n’, ‘de fg\r’, ‘kl\r\n’]
  • s.jion #以什么为连字符将多个字符串连接在一起
    案例

7.其他内置方法

  • len(s) #返回字符串的字符数
  • max() and min() 返回最大或者最小的字符(按照ASCII码排列)
  • enumerate(s) 枚举对象同时列出字符和字符下标
  • zip() 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
    案例
发布了36 篇原创文章 · 获赞 0 · 访问量 303

猜你喜欢

转载自blog.csdn.net/ANingL/article/details/103428116