Python 学习笔记:字符串的定义和操作

1. 概述

字符串(String)是 Python 中一种常用的数据类型,用于表示文本数据。字符串是字符的有序序列,可以包含字母、数字、符号甚至空格。理解和掌握字符串操作是 Python 编程中的基本技能。

2. 字符串的定义

字符串可以使用单引号 '、双引号 " 或三引号 '''""" 定义。三引号字符串可以跨多行。

示例

# 使用单引号定义字符串
str1 = 'Hello, World!'

# 使用双引号定义字符串
str2 = "Python is fun!"

# 使用三引号定义多行字符串
str3 = '''This is a multi-line string.
It can span multiple lines.
'''

# 使用双引号定义多行字符串
str4 = """Another example of a multi-line string.
It can also span multiple lines."""
3. 字符串的基本操作
3.1 访问字符串中的字符

可以使用索引来访问字符串中的单个字符。索引从 0 开始,支持正向和反向索引。

示例

str1 = 'Hello, World!'

# 访问第一个字符
print(str1[0])  # 输出: 'H'

# 访问最后一个字符
print(str1[-1])  # 输出: '!'
3.2 字符串切片

字符串切片(Slicing)允许你获取字符串的子字符串。基本语法为 str[start:end:step]

示例

str1 = 'Hello, World!'

# 获取从索引0到索引5的子字符串(不包括索引5)
print(str1[0:5])  # 输出: 'Hello'

# 获取从索引7到末尾的子字符串
print(str1[7:])  # 输出: 'World!'

# 获取整个字符串
print(str1[:])  # 输出: 'Hello, World!'

# 每隔一个字符获取字符串
print(str1[::2])  # 输出: 'Hlo ol!'
3.3 字符串拼接

可以使用 + 运算符或 join() 方法进行字符串拼接。

示例

# 使用 + 运算符拼接
str1 = 'Hello'
str2 = 'World'
result = str1 + ', ' + str2 + '!'
print(result)  # 输出: 'Hello, World!'

# 使用 join() 方法拼接
words = ['Hello', 'World']
result = ', '.join(words) + '!'
print(result)  # 输出: 'Hello, World!'
3.4 字符串重复

可以使用 * 运算符重复字符串。

示例

str1 = 'Hello'

# 重复3次
result = str1 * 3
print(result)  # 输出: 'HelloHelloHello'
3.5 字符串长度

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

示例

str1 = 'Hello, World!'

# 获取字符串长度
length = len(str1)
print(length)  # 输出: 13
3.6 检查子字符串

可以使用 in 运算符检查子字符串是否存在。

示例

str1 = 'Hello, World!'

# 检查是否包含 'World'
result = 'World' in str1
print(result)  # 输出: True

# 检查是否包含 'Python'
result = 'Python' in str1
print(result)  # 输出: False
4. 常用字符串方法

Python 提供了许多内置方法用于字符串操作,比如查找、替换、转换大小写等。以下是一些常用方法:

4.1 lower()upper()

转换字符串为小写或大写。

示例

str1 = 'Hello, World!'

# 转换为小写
print(str1.lower())  # 输出: 'hello, world!'

# 转换为大写
print(str1.upper())  # 输出: 'HELLO, WORLD!'
4.2 strip()

移除字符串左右两端的空白字符或指定字符。rstrip()lstrip() 方法分别移除右边和左边的空白字符或指定字符。

示例

str1 = '  Hello, World!  '

# 移除两端空白字符
print(str1.strip())  # 输出: 'Hello, World!'

# 移除左边空白字符
print(str1.lstrip())  # 输出: 'Hello, World!  '

# 移除右边空白字符
print(str1.rstrip())  # 输出: '  Hello, World!'
4.3 split()

将字符串拆分为列表。

示例

str1 = 'Hello, World!'

# 使用空格拆分字符串
result = str1.split()
print(result)  # 输出: ['Hello,', 'World!']

# 使用逗号拆分字符串
result = str1.split(',')
print(result)  # 输出: ['Hello', ' World!']
4.4 replace()

替换字符串中的子字符串。

示例

str1 = 'Hello, World!'

# 将 'World' 替换为 'Python'
result = str1.replace('World', 'Python')
print(result)  # 输出: 'Hello, Python!'
4.5 find()

查找子字符串在字符串中的位置,返回子字符串的起始索引。如果没有找到则返回 -1。

示例

str1 = 'Hello, World!'

# 查找 'World' 的位置
index = str1.find('World')
print(index)  # 输出: 7

# 查找 'Python' 的位置
index = str1.find('Python')
print(index)  # 输出: -1
4.6 index()

根据下表索引去除特定位置字符

str1 = "Hello, World!"

# 查找子字符串 "World"
index = str1.index("World")
print(index)  # 输出: 7

# 查找子字符串 "Hello"
index = str1.index("Hello")
print(index)  # 输出: 0

# 查找子字符串 "Python"(不存在)
try:
    index = str1.index("Python")
except ValueError:
    print("Substring not found!")
# 输出: Substring not found!

4.7. count()
count() 方法用于统计一个字符串中某个子字符串出现的次数。它可以指定一个范围在字符串中进行统计。

语法:

str.count(substring[, start[, end]])

substring:要统计的子字符串。
start(可选):开始统计的位置,默认为字符串的开头。
end(可选):结束统计的位置,默认为字符串的末尾。
返回值:子字符串在字符串中出现的次数。

示例:

str1 = "Hello, world! Hello, Python!"

# 不带范围的子字符串计数
count_hello = str1.count("Hello")
print(count_hello)  # 输出: 2

# 带范围的子字符串计数,从索引5开始到末尾
count_o = str1.count("o", 5)
print(count_o)  # 输出: 3

# 带范围的子字符串计数,从索引0到12
count_l = str1.count("l", 0, 12)
print(count_l)  # 输出: 3

4.8 len()
统计字符串中字符的个数
示例:

str2 = "Hello, world!"

# 计算字符串长度
length = len(str2)
print(length)  # 输出: 13

# 示例列表、元组和字典长度计算
example_list = [1, 2, 3, 4, 5]
example_tuple = (1, 2, 3)
example_dict = {'a': 1, 'b': 2, 'c': 3}

print(len(example_list))  # 输出: 5
print(len(example_tuple))  # 输出: 3
print(len(example_dict))  # 输出: 3

5. 字符串格式化

Python 提供了多种字符串格式化方式,包括 printf 风格格式化、str.format() 方法和 f-strings。这里简单介绍一下:

5.1 printf 风格格式化

使用 百分号 % 进行字符串格式化。

示例

name = 'Alice'
age = 25

# 使用 % 格式化字符串
result = 'Name: %s, Age: %d' % (name, age)
print(result)  # 输出: 'Name: Alice, Age: 25'
5.2 str.format() 方法

使用 format() 方法进行字符串格式化。

示例

name = 'Alice'
age = 25

# 使用 str.format() 方法格式化字符串
result = 'Name: {}, Age: {}'.format(name, age)
print(result)  # 输出: 'Name: Alice, Age: 25'
5.3 f-strings(格式化字符串字面值)

使用 f-strings 进行字符串格式化(Python 3.6 及以上)。

示例

name = 'Alice'
age = 25

# 使用 f-strings 格式化字符串
result = f'Name: {name}, Age: {age}'
print(result)  # 输出: 'Name: Alice, Age: 25'
6. 总结
  • 定义字符串:可以使用单引号、双引号或三引号定义字符串。三引号可以跨多行。
  • 基本操作:包括访问字符、字符串切片、字符串拼接、字符串重复、获取字符串长度、检查子字符串等。
  • 常用方法:包括 lower()upper()strip()split()replace()find() 等。
  • 字符串格式化:包括 % 格式化、str.format() 方法和 f-strings。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值