Python基础知识9: 字符串

简介: Python基础知识9: 字符串

一、字符串的定义


  • 1.1、字符串 就是 一串字符,是编程语言中 表示文本的数据类型
  • 1.2、在 Python 中可以使用一对双引号 "或者一对单引号 ' 定义一个字符串(推荐使用双引号 ",因为绝大多数的语言字符串都是用双引号)
  • 如果字符串内部需要使用 ",可以使用 '定义字符串
  • 如果字符串内部需要使用 ',可以使用 "定义字符串


  • 1.3、 可以使用 索引 获取一个字符串 中 指定位置的字符,索引的计数从 0 开始


string = "hello Python"
print(string[1])
  • 1.4、也可以使用 for循环遍历 字符串中每一个字符


string = "hello Python"
for c in string:
      print(c)


二、字符串的常用操作


  • 2.1、统计字符串的长度


string = "hello Python"
print(len(string))
打印结果是:12
  • 2.2、统计一个字符或者字符串在另外一个字符串里面出现的次数


string = "hello Python"
print(string.count("o"))
打印结果是:2
  • 2.3、某一个子字符串在大字符串中第一次出现的索引,如果在另外一个字符串(大字符串)里面不存在就会报错


string = "hello Python"
print(string.index("P"))
打印结果是:6
print(string.index("p"))  # 报错


三、字符串的方法分类



  • 3.1、判断类型(9个)


方法 说明
string.isspace() 如果 string 中只包含空字符串(\t、\r、\n),则返回 True
string.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha() 如果string 至少有一个字符并且所有字符都是字母则返回True
string.isdecimal() 如果string 只包含数字则返回 true,全角数字(也就是阿拉伯数字:1234)
string.isdigit() 如果 string 只包含数字则返回True,(1),\u00b2
string.isnumeric() 如果string 只包含数字则返回True,全角数字,汉字数字
string.istitle() 如果 string 是标题华的(每个单词的首字母大写)则返回 True
string.islower() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True
string.isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True
  • 简单举例(1): 判断string 中只包含空字符串,(\t: 垂直对齐、\r: 回车、\n: 换行)也是空字符


stringSpace = "     \t"
print(stringSpace.isspace())
打印结果是
True
  • 简单举例(2): 判断string 至少有一个字符并且所有字符都是字母或数字则返回 True


string = "123,PPP"
print(string.isspace())
打印结果是
False
  • 简单举例(3): 判断数字的三个方法:string.isdecimal(),string.isdigit(),string.isnumeric(),判断的范围是逐渐扩大
  • 第一点:三个方法都不可以判断小数


number_str = "1.3"
print(number_str.isdecimal())
print(number_str.isdigit())
print(number_str.isnumeric())
打印结果是:
False
False
False
  • 第二点:isdecimal()只可以判断全角数字,也就是只能判断阿拉伯数字:1234567......
  • 第三点:isdigit()在isdecimal()的基础上还可以判断 unicode 字符串
  • 第四点:isnumeric()在isdigit()的基础上还可以判断 中文字符,如: 一二三四百千万


  • 3.2、查找和替换(7个)


方法 说明
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=0,num=string.count(old)) 把string 中的old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次
  • 简单举例(1): 检查字符串是否是以 str开头,是则返回 True


string= "str I Love You !"
print(string.startswith("str"))
打印结果是:
True
  • 3.3、大小写转换(5个)


方法 说明
string.capitalize() 把字符串的第一个字符大写
string.title() 把字符串的每个单词首字母大写
string.lower() 转换 string 中 所有大写字符为小写
string.upper() 转换 string 中 所有小写字母为大写
string.swapcase() 翻转 string 中的大小写
  • 简单举例(1): 把字符串的每个单词首字母大写(每个单词之间有空格才代表一个单词)


string = "str i love you !"
print(string.title())
打印结果是:
Str I Love You !
  • 3.4、文本对齐(3个),记得输入一个字符串的宽度


方法 说明
string.ljust(width) 返回一个字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width) 返回一个字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width) 返回一个字符串居中,并使用空格填充至长度 width 的新字符串
  • 简单举例(1):返回一个字符串居中,并使用空格填充至长度 width 的新字符串
string = "    str i love you !I want to play      "
print(string.center(10)) 
#  如果想要英文也对齐,那么就要增加 中文空格: 
# print(string.center(10," "))
打印结果是:
     str i love you !I want to play
  • 3.5、去除空白字符(3个)


方法 说明
string.lstrip() 截掉 string 左边 (开始) 的空白字符
string.rstrip() 截掉 string 右边 (末尾) 的空白字符
string.strip() 截掉 string 左右两边的空白字符
  • 3.6、拆分和连接(5个)


方法 说明
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,\t,\n)分割,返回一个包含各行作为元素的列表
string.join(seq) 以string 作为 分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
  • 简单举例(1):以 str  为分隔符切片string ,如果 num 有指定值,则仅分割 num + 1 个字符串,str 默认包含 \r,\t,\n   和 空格,返回值是列表


string  = "str i love you y!I want to play"
print(string.split("y",1)) # 代表分割成的列表是 `2+1` 个元素
打印结果是:
['str i love ', 'ou y!I want to play']
print(string.split("y",2)) # 代表分割成的列表是 `2+1` 个元素
打印结果是:
['str i love ', 'ou ', '!I want to play']


四、字符串的切片



  • 4.1、 切片 方法 适用于 字符串列表元组
  • 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
  • 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
  • 字典 是一个 无序的集合,是使用 键值对 保存数据


image.png


  • 字符串[开始索引:结束索引:步长]
  • 注意:
  • 指定区间属于 左闭右开型 :从起始 位开始,到 结束 位的前一位 结束 (不包含结束位本身)
  • 从头开始,开始索引 数字可以省略,冒号不能省略
  • 到末尾结束,结束索引 数字可以省略,冒号不能省略
  • 步长默认为 1,如果连续切片,数字和冒号都可以省略


  • 4.2、看下面的几个例子练习最初的字符串都是 string = "Hi boy,I Love You"
  • 截取从 2~5 位置的字符串(因为是右边是开区间,所以要写到第6位)


print(string[2:6]) # 因为步长为 1,后面的 :1 可以省略
  • 截取从 2~末尾 的字符串


print(string[2:])
  • 截取从 开始~5 位置的字符串


print(string[0:6])
  • 截取完整的字符串


print(string[:])
  • 从开始位置,每隔一个字符串截取字符串( 步长一看就是 2)


print(string[::2])
  • 从索引 1 开始,每隔一个取一个


print(string[1::2])
  • 截取从 2~末尾-1  的字符串


print(string[2:-1])
  • 截取字符串末尾两个字符


print(string[-2:]) # 因为步长为 1,后面的 :1 可以省略
  • 字符串的逆序


print(string[::-1])
print(string[-1::-1])


image.png

目录
相关文章
|
17天前
|
Python
1167: 分离字符串(PYTHON)
1167: 分离字符串(PYTHON)
|
1月前
|
大数据 Python
使用Python查找字符串中包含的多个元素
本文介绍了Python中查找字符串子串的方法,从基础的`in`关键字到使用循环和条件判断处理多个子串,再到利用正则表达式`re模块`进行复杂模式匹配。文中通过实例展示了如何提取用户信息字符串中的用户名、邮箱和电话号码,并提出了优化策略,如预编译正则表达式和使用生成器处理大数据。
20 1
|
1月前
|
数据挖掘 开发者 Python
Python:字符串判断子串
Python:字符串判断子串
|
1月前
|
程序员 数据安全/隐私保护 Python
Python:翻转字符串
Python:翻转字符串
|
1月前
|
索引 Python
Python系列(14)—— 字符串运算符
Python系列(14)—— 字符串运算符
|
1月前
|
存储 自然语言处理 数据挖掘
Python:计算字符串中每个单词出现的次数
Python:计算字符串中每个单词出现的次数
|
1天前
|
Python
Python 字符串格式化指南
本文介绍了Python中的三种字符串格式化方法:1) 使用 `%` 操作符,如 `%s` 和 `%d`;2) `str.format()` 方法,通过 `{}` 占位符插入变量;3) Python 3.6 引入的 f-strings,直接在字符串内嵌入变量。此外,还提到了高级用法,如格式控制(如指定小数位数)。这些方法有助于更有效地处理和格式化字符串输出。
3 0
|
6天前
|
存储 文件存储 Python
python基础知识(一)
python基础(一){编码,字符串格式化,数据类型,运算符,推导式(简化生成数据),函数编程,模块}
|
8天前
|
索引 Python
python 格式化、set类型和class类基础知识练习(上)
python 格式化、set类型和class类基础知识练习
32 0
|
8天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
49 0

热门文章

最新文章