当前位置: 首页 > article >正文

Python基础——字符串

目录

一、 字符串定义

二、 字符串格式化 

三、 字符串常用操作

1、访问字符

2、切片操作 

3、字符串翻转

4、字符串连接 

5、字符串重复打印

6、获取字符串长度 

7、字符串替换 

8、字符串比较

9、字符串查找 

10、字符串分割

11、字符串大小写转换 

12、字符串去空格

13、其他


在 Python 中,字符串用来表示文本数据的序列类型。Python 提供了丰富的内置方法和操作符来处理字符串,操作既强大又灵活,下面是常用字符串的详细介绍和处理方法:

一、 字符串定义

在 Python 中,字符串用单引号 ( ' ) 或双引号 ( " ) 来定义,也可以使用三引号( ''' """ )来定义多行字符串。

# 单引号
str1 = 'Hello, World!'

# 双引号
str2 = "Python Programming"

# 三引号(用于多行字符串)
str3 = '''This is
a multi-line
string.'''

二、 字符串格式化 

Python 提供了多种字符串格式化方式,常见的有 % 格式化(%格式化和C语言一致)、str.format() 方法和 f-string(Python 3.6+)。

 使用 格式化:

name = "Alice"
age = 30
formatted_str = "My name is %s and I am %d years old." % (name, age)
print(formatted_str)

 使用 str.format() 

name = "Alice"
age = 30
formatted_str = "My name is {} and I am {} years old.".format(name, age)
print(formatted_str)

使用 f-string(推荐,Python 3.6+): 

name = "Alice"
age = 30
formatted_str = f"My name is {name} and I am {age} years old."
print(formatted_str)

三、 字符串常用操作

1、访问字符

在Python中,最基本的数据结构是序列,序列中的每个元素被分配一个序号,即元素的位置,也称为索引,字符串其实就是一个字符元素组成的序列,通过索引来访问其中的字符,Python中的索引从0开始,也支持负索引(从右到左)。

s = "Hello"
print(s[0])   # 输出 'H'
print(s[-1])  # 输出 'o'
2、切片操作 

使用切片来提取字符串的某一部分。

s = "Hello, World!"
print(s[0:5])   # 输出 'Hello',索引从0到4(不包括5)
print(s[7:])    # 输出 'World!',从索引7开始到结尾
print(s[:5])    # 输出 'Hello',从开头到索引4(不包括5)
print(s[-6:-1]) # 输出 'World',负索引从右往左数
3、字符串翻转

翻转字符串可以通过切片实现。

s = "Hello"
reversed_s = s[::-1]
print(reversed_s)  # "olleH"
4、字符串连接 

字符串可以通过 + 运算符或 join() 方法连接。

使用 + 运算符

s1 = "Hello"
s2 = "World"
s3 = s1 + ", " + s2  # 拼接字符串
print(s3)            # 输出 "Hello, World"

使用 join() 运算符:

s = " "
words = ["Hello", "World"]
result = s.join(words)
print(result)  #输出 "Hello World"
5、字符串重复打印

使用  *  运算符来重复打印字符串。

s = "Hi! "
print(s * 3)  # 输出 'Hi! Hi! Hi! '
6、获取字符串长度 

 使用 len() 函数来获取字符串的长度。

s = "Hello, World!"
print(len(s))  # 输出 13
7、字符串替换 

字符串替换是指将字符串中的某些子字符串替换成其他子字符串。

方法str.replace(old, new[, count])

  • old:要被替换的子字符串。
  • new:替换成的新子字符串。
  • count(可选):替换的次数。
s = "hello world"
new_s = s.replace("world", "Python")
print(new_s)  # 输出: hello Python
8、字符串比较

在 Python 3 中,字符串比较可以通过直接使用标准的比较运算符来完成。Python 3 移除了 cmp()函数,取而代之的是使用常见的比较运算符,如 <<===>>=!= 来比较字符串。

字符串比较运算符按照字典顺序(即基于字符的 Unicode 值)来比较字符串:

  • ==: 判断两个字符串是否相等
  •  !=:判断两个字符串是否不相等
  • <:判断第一个字符串是否按字典顺序小于第二个字符串
  • <=: 判断第一个字符串是否按字典顺序小于或等于第二个字符串
  • >:判断第一个字符串是否按字典顺序大于第二个字符串
  • >=: 判断第一个字符串是否按字典顺序大于或等于第二个字符串
str1 = "apple"
str2 = "banana"
str3 = "apple"

# 使用比较运算符进行比较
print(str1 == str2)  # False,"apple" 不等于 "banana"
print(str1 != str2)  # True,"apple" 不等于 "banana"
print(str1 < str2)   # True,"apple" 小于 "banana"
print(str1 > str2)   # False,"apple" 不大于 "banana"
print(str1 <= str3)  # True,"apple" 等于 "apple"
print(str1 >= str3)  # True,"apple" 等于 "apple"
9、字符串查找 

字符串查找用于寻找子字符串的位置。如果子字符串存在,返回其起始位置;如果子字符串不存在,返回 -1find)或抛出异常(index)。

方法:

str.find(sub): 返回子字符串 sub 在字符串中的最低索引,如果未找到返回 -1
str.index(sub): 与 find 类似,但如果未找到会抛出 ValueError

s = "hello world"
position = s.find("world")
print(position)  # 输出: 6

# 使用 index
position2 = s.index("world")
print(position2)  # 输出: 6
10、字符串分割

字符串分割是将字符串根据某个分隔符切割成多个子字符串,并返回一个列表。

方法str.split(sep=None, maxsplit=-1)
sep:指定分隔符,默认为 None,表示按空白字符(空格、换行符、制表符等)分割。
maxsplit(可选):最多分割的次数。

s = "apple,banana,orange"
result = s.split(",")
print(result)  # 输出: ['apple', 'banana', 'orange']

# 限制分割次数
result2 = s.split(",", 1)
print(result2)  # 输出: ['apple', 'banana,orange']
11、字符串大小写转换 

方法

  • str.lower():将字符串转换为小写。
  • str.upper():将字符串转换为大写。
  • str.capitalize():将字符串的首字母大写,其他字母小写。
  • str.title():将字符串每个单词的首字母大写。
s = "hello world"
print(s.lower())       # 输出: hello world
print(s.upper())       # 输出: HELLO WORLD
print(s.capitalize())  # 输出: Hello world
print(s.title())       # 输出: Hello World
12、字符串去空格

字符串去空格是去除字符串开头和/或结尾的空白字符。
方法

  • str.strip():去除字符串两端的空白字符。
  • str.lstrip():去除字符串左侧的空白字符。
  • str.rstrip():去除字符串右侧的空白字符。
s = "   hello world   "
print(s.strip())   # 输出: hello world
print(s.lstrip())  # 输出: hello world   
print(s.rstrip())  # 输出:    hello world
13、其他
  • str.isalnum() :是否全是字母和数字,并至少有一个字符;
  • str.isalpha() :是否全是字母,并至少有一个字符;
  • str.isdigit() :是否全是数字,并至少有一个字符;
  • str.isspace() :是否全是空白字符,并至少有一个字符;
  • str.count(targer,[min,max)):统计某个字符在字符串中出现的次数;
  • str.startswith(target) :判断字符串是否以某个字符串开始;
  • str.endswith(target) :判断字符串是否以某个字符串结尾 。

http://www.kler.cn/a/452562.html

相关文章:

  • OpenCV相机标定与3D重建(36)计算两幅图像之间基本矩阵(Fundamental Matrix)的函数findFundamentalMat()的使用
  • 第十七届山东省职业院校技能大赛 中职组“网络安全”赛项任务书正式赛题
  • Git--tag标签远程管理
  • vLLM (2) - 架构总览
  • 实现 QTreeWidget 中子节点勾选状态的递归更新功能只影响跟节点的状态父节点状态不受影响
  • Echarts连接数据库,实时绘制图表详解
  • 地理数据库Telepg面试内容整理-解释什么是地理空间数据和普通数据的区别
  • C++模板:编译时模拟Duck Typing
  • Modbus数据网关在制造企业的应用与效果
  • 一文详解“递归“在算法中的应用
  • RAGFLOW使用笔记【更新ing】
  • C语言实现顺序表详解
  • FFmpeg音频解码详解
  • 最新版hadoop-3.4.0集群安装和配置(目前论坛的都是老古董了,看我的准没错!!!)这里以三台服务器为例
  • 计算机网络习题( 第3章 物理层 第4章 数据链路层 )
  • 机器学习系列(一)——K-近邻算法
  • leetcode hot100
  • 搭建vue3+vant项目架构
  • WPF的右键菜单项目引入DLL和DllImport特性引入DLL文件的异同点
  • Flutter 实现文本缩放学习
  • 机器人历史
  • 代理IP与科技创新:算力资源的灵活调度与高效利用
  • 前端bug调试
  • LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测
  • 【SpringBoot中怎么使用ElasticSearch】
  • Magnet: 基于推送的大规模数据处理Shuffle服务