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

目录
相关文章
|
3月前
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
57 1
|
1月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
53 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
2月前
|
Python
python获取字符串()里面的字符
在Python中,如果你想获取字符串中括号(比如圆括号`()`、方括号`[]`或花括号`{}`)内的字符,你可以使用正则表达式(通过`re`模块)或者手动编写代码来遍历字符串并检查字符。 这里,我将给出使用正则表达式的一个例子,因为它提供了一种灵活且强大的方式来匹配复杂的字符串模式。 ### 使用正则表达式 正则表达式允许你指定一个模式,Python的`re`模块可以搜索字符串以查找匹配该模式的所有实例。 #### 示例:获取圆括号`()`内的内容 ```python import re def get_content_in_parentheses(s): # 使用正则表达
97 36
|
1月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
52 7
|
1月前
|
索引 Python
Python 高级编程:深入探索字符串切片
在Python中,字符串切片功能强大,可灵活提取特定部分。本文详细介绍切片技巧:基本切片、省略起始或结束索引、使用负数索引、设定步长及反转字符串等。此外,还介绍了如何结合其他操作进行切片处理,如先转换大小写再提取子串。 来源:https://www.wodianping.com/yeyou/2024-10/48238.html
36 4
|
2月前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
125 6
|
2月前
|
网络协议 网络安全 开发者
Python 向IP地址发送字符串
Python 向IP地址发送字符串
|
2月前
|
Python
Python 中取字符串中等于号后面的内容
Python 中取字符串中等于号后面的内容在编程过程中,我们经常需要从字符串中提取特定的信息。一个常见的任务是在给定的字符串中查找等于号(=)后面的内容。这种需求在解析配置文件、处理查询字符串或分析日志数据时尤其常见。 如何实现 在Python中,我们可以使用多种方法来实现此功能。以下是几种常用的方法,包括字符串操作和正则表达式。 方法 1:使用字符串分割 我们可以使用字符串的 split() 方法将字符串拆分为两个部分,然后提取等于号后的值。 示例代码 ----------------------------------- ©著作权归作者所有:来自51CTO博客作者bruce_xiao
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
30 0
|
1月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)