Python day06——字符串
一、字符串
字符串定义:
(1)字符串就是一串字符,是编程语言中表示文本的数据类型。
(2)在Python中可以使用一对双引号""或者一对单引号''定义一个字符串。
(3)可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始;
也可以使用for循环遍历字符串中每一个字符。
例如:
my_str="hello python, hello world"
print(my_str[4])
for i in my_str:
print(i)
字符串常用操作:
my_str.capitalize my_str.isidentifier my_str.rindex
my_str.casefold my_str.islower my_str.rjust
my_str.center my_str.isnumeric my_str.rpartition
my_str.count my_str.isprintable my_str.rsplit
my_str.encode my_str.isspace my_str.rstrip
my_str.endswith my_str.istitle my_str.split
my_str.expandtabs my_str.isupper my_str.splitlines
my_str.find my_str.join my_str.startswith
my_str.format my_str.ljust my_str.strip
my_str.format_map my_str.lower my_str.swapcase
my_str.index my_str.lstrip my_str.title
my_str.isalnum my_str.maketrans my_str.translate
my_str.isalpha my_str.partition my_str.upper
my_str.isdecimal my_str.replace my_str.zfill
my_str.isdigit my_str.rfind
判断类型
- string.isspace()如果string中只包含空格,则返回True
- string.isalnum()如果string至少有一个字符并且所有字符都是字母或数字则返回True
- string.isalpha()如果string至少有一个字符并且所有字符都是字母则返回True
- string.isdecimal()如果string只包含数字则返回True,`全角数字`
- string.isdigit()如果string只包含数字则返回True,`全角数字`、`⑴`、`\u00b2`
- string.isnumeric()如果string只包含数字则返回True,`全角数字`,`汉字数字`
- string.istitle()如果string是标题化的(每个单词的首字母大写)则返回True
- string.islower()
如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True- string.isupper()
如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True
查找和替换
- string.startswith(str)检查字符串是否是以str开头,是则返回True
- string.endswith(str)检查字符串是否是以str结束,是则返回True
- string.find(str,start=0,end=len(string))
检测str是否包含在string中,如果start和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回`-1`- string.rfind(str,start=0,end=len(string))类似于find(),不过是从右边开始查找
- string.index(str,start=0,end=len(string))跟find()方法类似,不过如果str不在string会报错
- string.rindex(str,start=0,end=len(string))类似于index(),不过是从右边开始
- string.replace(old_str,new_str,num=string.count(old))
把string中的old_str替换成new_str,如果num指定,则替换不超过num次
大小写转换
- string.capitalize()把字符串的第一个字符大写
- string.title()把字符串的每个单词首字母大写
- string.lower()转换string中所有大写字符为小写
- string.upper()转换string中的小写字母为大写
- string.swapcase()翻转string中的大小写
文本对齐
- string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度width的新字符串
- string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度width的新字符串
- string.center(width)返回一个原字符串居中,并使用空格填充至长度width的新字符串
去除空白字符
- string.lstrip()截掉string左边(开始)的空白字符
- string.rstrip()截掉string右边(末尾)的空白字符
- string.strip()截掉string左右两边的空白字符
拆分和连接
- string.partition(str)把字符串string分成一个3元素的元组(str前面,str,str后面)
- string.rpartition(str)类似于partition()方法,不过是从右边开始查找
- string.split(str="",num)
以str为分隔符拆分string,如果num有指定值,则仅分隔num+1个子字符串,str默认包含'\r','\t','\n'和空格- string.splitlines()按照行('\r','\n','\r\n')分隔,返回一个包含各行作为元素的列表
- string.join(seq)以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串
二、练习:
(1)判断字符串中是否是数字。
my_str="123"
print(my_str.isdecimal())
(2)判断字符串中是否只包含空格。(注:isspace方法检查如果字符串全部是空格则返回True,否则返回False)
my_str="hello"
print(my_str.isspace())
(3)判断是否以指定字符串开始/结束,
my_str="hello python, hello world"
print(my_str.startswith("hel"))
print(my_str.endswith("world"))
(4)查找指定的子字符串。
my_str="hello python, hello world"
print(my_str.find("python"))
(注意:找到后返回首字符的索引位置,若不找到则返回-1)
(5)替换字符串
my_str="hello python, hello world"
print(my_str.replace("hello","welcome"))
print(my_str)
(注意:replace方法不会修改原有字符串的内容)
(6)字符串对齐
title = [
"学生成绩管理系统",
"1.显示所有学生信息",
"2.增加新学生信息",
"3.查找学生信息"]
for i in title:
print("%s" % i.center(30, " "))
(7)字符串去除空格
my_str = " hello python "
print(my_str.strip())
my_str = "Can’t Take My Eyes off You "
print(my_str.strip())
(注意:只会删除两侧的空格)
(8)字符串的切片。
字符串[开始索引:结束索引:步长]
切片使用索引值来限定范围,从起始位开始,到结束位的前一位结束(不包含结束位本身)。
从头开始,开始索引数字可以省略,冒号不能省略;
到末尾结束,结束索引数字可以省略,冒号不能省略;
步长默认为1,如果连续切片,数字和冒号都可以省略。
my_str = "0123456789"
# 截取从 2 ~ 5 位置的字符串:
print(my_str[2:6]) # (注:不包含结束位索引)
# 截取从 2 ~ 末尾的字符串:
print(my_str[2:]) # (注:末位可以省略)
# 截取从开始 ~ 5 位置的字符串:
print(my_str[:6]) # (注:开始位可以省略,不包含结束位索引)
# 截取字符串末尾两个字符:
print(my_str[-2:])
# 字符串的逆序:
print(my_str[::-1]) # (注:从最后一个字符开始,步长是-1)