python基础——字符串切片

字符串切片是指获取字符串的一部分,形成新的字符串对象

语法:
字符串[开始索引,结束索引]
字符串[开始索引,结束索引,步长]
参数解释:
1、开始索引没写,默认为0
2、结束索引没写,默认到字符串的结尾
3、如果step为正时,开始索引的位置一定要在结束索引的前边,否则截取的字符串为空
4、如果step为负时,开始索引的位置一定要在结束索引的后边,否则截取的字符串为空
5、step不能为0,否则报错
6、如果没有step设置,默认为1
7、索引位置出现-1表示是字符串的最后一个字符,-2表示倒数第二个,以此类推
8、开始索引可以取到而结束索引去取不到是方便使用同一个下标可以把整个字符串全部截取,即str[:3]和str[3:] 可以取全部的字符串

注意第一和第二条的是字符串的相对位置关系,并不是开始和结束索引的大小关系

举例说明
str[-1] 取字符串的最后一个参数,只有一个参数,代表相应字符的索引

a = "012345"
print(a[-1])
输出:5

str[:] 采用切片的方式复制字符串,可以看作是字符串的浅copy

a = "012345"
print(a[:])
输出:012345

str[1:3] 没有step,默认为1

a = "012345"
print(1:3)
输出:

str[:3] 默认从头开始,step默认为1

a = "012345"
print(a[:3])
输出:012

str[3:] 从下标为3的地方一直到最后

a = "012345"
print(a[3:])
输出:345

str[3:100] 结束索引的值可以比整个字符串的长度要大,一般不推荐

a = "012345"
print(a[3:100])
输出:345

str[::-1] 倒序输出字符串

a = "012345"
print(a[::-1])
输出:543210

str[::-2] 倒序输出,步长为2

a = "012345"
print(a[::-2])
输出:531

str[-1:2:-1] 此时-1(第一个)代表的位置一定在2代表的位置的后边

a = "012345"
print(a[-1:2:-1])
输出:543

注意点就是开始索引和结束索引的相对位置关系

### Python 2.3 版本中字符串处理的基本数据类型 在 Python 的历史发展中,早期版本对于字符串类型的定义相对较为简单。Python 2.x 系列中的基本字符串类型主要包括 `str` 和 `unicode`[^4]。 #### 1. **`str` 类型** `str` 是一种不可变的数据类型,在 Python 2.3 中主要用于表示 ASCII 编码的字符串。它是一个字节序列,通常用来存储普通的文本信息。由于其基于字节的设计,`str` 只能直接表示 ASCII 范围内的字符(0-127)。如果需要处理超出此范围的字符,则可能涉及编码/解码过程。 #### 2. **`unicode` 类型** 为了支持国际化需求,Python 2.3 引入了 `unicode` 数据类型来专门处理 Unicode 文本。这种类型允许开发者更方便地操作多语言文字,例如中文、日文或其他非拉丁字符集。与 `str` 不同的是,`unicode` 使用两个字节或更多字节来表示每一个字符,从而能够覆盖几乎所有的书写系统。 需要注意的是,在实际编程过程中,当涉及到不同编码之间的转换时,可能会遇到一些常见的错误,比如 `UnicodeEncodeError` 或者 `UnicodeDecodeError`。因此了解并掌握正确的编码方式非常重要[^5]。 #### 3. **字符串的操作基础** 无论是哪种类型的字符串,在 Python 中都可以通过索引来获取其中特定位置上的字符;也可以利用切片功能提取子串[^1]。此外还有许多内置函数可用于修改或者查询字符串属性,像 `.upper()`, `.lower()` 进行大小写的变换;`.strip()` 移除两端空白字符等等[^2]。 下面给出一段简单的例子展示如何创建这两种类型的变量以及执行基本操作: ```python # 创建 str 类型对象 (ASCII) ascii_str = 'hello world' print(ascii_str.upper()) # 创建 unicode 类型对象 (含非ASCII字符) uni_str = u'你好世界' print(len(uni_str)) # 尝试混合使用两者会自动尝试隐式转换成统一形式 mixed_result = ascii_str.decode('utf8') + uni_str print(mixed_result.encode('utf8')) ``` 以上代码片段展示了从普通字符串到大写字母转化的过程,计算了一个含有四个汉字的长度,并演示了跨类型加法运算前后的必要步骤——即显式指定编解码规则以避免潜在冲突。 尽管上述内容适用于较旧版次的语言环境,但对于理解现代计算机科学领域内有关于文本表现形式的知识仍然具有重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值