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())

python定义字符串指针吗 python中字符串定义_python

(注意:只会删除两侧的空格) 

(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)