Python基础之字符串操作、切片、set

本文主要探讨Python中的字符串基础知识,包括字符串的定义、常用操作如查找替换、拆分拼接,以及重点讲解切片操作,特别是切片的步长使用。同时,也介绍了高级变量类型set的基本用法和相关语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 字符串

1. 字符串的定义
# 定义字符串 字符串的元素就是指单个字符
str1 = "hello"
str1 = 'hello'

# 支持索引和遍历
print(str1[0])

for char in str1:
    print(char)

# 内部使用单引号,外部使用双引号(反之亦然)
str2 = "hello 'py'thon"
print(str2)

# 一般使三对单/双引号来记录多行字符串
str3 = """hello
python
123"""

print(type(str3))
print(str3)
2. 字符串的基本操作 (重点)
  • 查找和替换
str1 = 'hello python'

"""查询字符的索引位置"""
# 字符串.find(字符) 查询该字符在字符串中的索引位置(只获取匹配到的第一个)
index = str1.find("o")
print(index)

# 字符串.find(字符, 起始索引, 结束索引) 查询指定的索引范围:[起始索引, 结果索引)
index = str1.find('o', 5, 11)
# # 查询不到数据时,返回-1
print(index)

# 字符串.rfind(字符)  从右侧开始查询
index = str1.rfind('o')
print(index)

"""替换"""
# 字符串.replace(原内容, 新内容)  字符串本身不能更改,所谓的'修改'其实是生成了一个新的字符串
str2 = str1.replace("python", "c")
print(str1)
print(str2)

# 字符串.replace(内容, 新内容, 替换次数)  默认全部替换,也可以指定次数
str2 = str1.replace("o", "a", 1)
print(str2)

  • 拆分和拼接
str1 = 'hello python'

"""拆分"""
# 按照分隔符将字符串拆分为多个字符,并添加列表中返回
# 字符串.split(分隔符, 分割次数)
result = str1.split(" ")
print(result)
['hello', 'python']

"""拼接"""
# 字符串 + 字符串 拼接
str2 = '上海'
str3 = '北京'
str4 = str2 + '-' + str3
print(str4)

# 连接符.join(可迭代对象)
# 可迭代对象:可以进行for循环遍历的数据(高级变量类型都是)
# 该方法要求的可迭代对象中元素必须是字符串
str4 = '-'.join([str2, str3])
print(str4)

# 如果2-3个字符串拼接,使用 加法
# 如果多个字符串拼接,建议使用join  性能好
3. 切片 (重点)
str1 = 'hello python'

# 取一个字符 字符串[索引]
print(str1[1])

# 取一部分字符   切片
# 切皮格式:  字符串[开始索引:结束索引]   取值范围: [开始索引, 结束索引)
# hello
print(str1[0:5])
# python
print(str1[6:12])

# 切片也支持负数格式
# hello
print(str1[0:-7])

# 如果从开头开始取, 可以省略开始索引
# hello
print(str1[:5])

# 如果从取到最后一个元素,可以省略结束索引
# python
print(str1[6:])

  • 步长
"""切片的高级处理: 步长"""
# 格式: 字符串[开始索引:结束索引:步长]
# 步长公式: 当前索引 + 步长 = 下一个数据的索引
str2 = "python"
print(str2[::2])

# 步长为负,表示倒序取值
print(str2[::-1])  # 将字符串翻转

# 如果步长为负数,
# 则省略开头表示从最后一个元素开始取;
# 则省略结尾表示取到第一个元素
print(str2[::-1]) # nohtyp
print(str2[5::-1]) # nohtyp
  • 字符串练习
# 练习: 将 输入的文件名  123.txt -> 修改为 123[复件].txt
file_name = input("请输入文件名:")

# 方法一: 使用replace替换
new_filename = file_name.replace(".txt", "[复件].txt")
print(new_filename)

# 方法二: 使用切片来实现
# 查询.索引的位置
dot_index = file_name.rfind('.')

# 使用切片分割文件名,并重新拼接
new_filename = file_name[:dot_index] + '[复件]' + file_name[dot_index:]
print(new_filename)

二. 高级变量类型

1. set
# 有序: 列表 元组 字符串
# 无序: 字典 set

# 定义无序集合 1. 无序  2.去重
set1 = {10, 20, 30, 40, 30, 20}
print(set1)
print(type(set1))
# <class 'set'>

# 主要用于 去重处理
list1 = [10, 20, 30, 40, 30, 20]
# 将列表转为set
set2 = set(list1)
print(set2)
# 将set转为列表
list2 = list(set2)
print(list2)

2. 公共语法
list1 = [10, 20, 30, 40]
# 最大值
print(max(list1))
# # 最小指
print(min(list1))

# 列表/元组/字符串都支持切片
print(list1[2:])

# 判断是否不包括
if 50 not in list1:
    print("不包括该数据")

# 逐个元素对比
ret = (1, 2, 6) < (1, 3, 4)
print(ret)
  • 1.1 内置函数
    在这里插入图片描述

  • 1.2 切片
    在这里插入图片描述

  • 1.3 运算符

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值