Python基本数据类型之字符串

关注微信公众号【Microstrong】,我写过四年Android代码,了解前端、熟悉后台,现在研究方向是机器学习、深度学习!一起来学习,一起来进步,一起来交流吧! 



01

 字符串常量


字符串是一种有序的字符集合,用于表示文本数据。字符串中的字符可以是ASCII字符、各种符号以及各种Unicode符号。严格意义上,字符串属于不可变序列,意味着不能直接修改字符串(即不能原处修改)。字符串中的字符按照从左到右的顺序,具有位置顺序,支持索引、分片等操作。

划重点:“”表示空字符串(空字符串就是字符串里没有内容)

Python字符串常量可用下列多种方法表示。

(一)  单引号:’Microstrong’

(二)  双引号:”Microstrong”

(三)  3个单引号或3个双引号:’’’Microstrong’’’”””Microstrong”””

(四)  rR前缀的Raw字符串:r’Microstrong’R”Microstrong”

(五)  uU前缀的Unicode字符串:u’Microstrong’U”Microstrong”

字符串都是str类型的对象,可用内置的str函数来创建str字符串对象。


(一)  单引号与双引号

在表示字符串常量时,单引号和双引号没有区别。在单引号字符串中可以嵌入双引号,在双引号字符串中可以嵌入单引号。

划重点:但是不能一边单引号,一边双引号。

(二)  三引号

1)三引号通常用于表示多行字符串(也称块字符串)


2)注释

三个单引号和三个双引号表示的是注释。

Python中的注释分为单行注释和多行注释。

单行注释:

在每行代码前写一个#,则这行代码不会被运行。

多行注释:

三个单引号和三个多引号可以进行多行注释


(三)  转义字符

转义转义,顾名思义,就是转换含义

Python用反斜杠(\)来转义字符

转义字符

描述

\(在行尾时)

续行符

\\

反斜杠符号

\’

单引号

\’’

双引号

\a

响铃

\b

退格(Backspace

\e

转义

\000

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

\oyy

八进制数yy代表的字符,例如:\o12代表换行

\xyy

十进制数yy代表的字符,例如:\xoa代表换行

\other

其它的字符以普通格式输出

例子:

(1)      横向制表符


(2)      换行


(3)      退格


(4)      单引号和双引号


看起来好复杂啊!那么我们可以用转义字符来简化,只是用一种引号。


(5)      转义字符不生效的两种方法:

  字符串前面加r


再加一个反斜线



02

 字符串基本操作


(1)      字符串长度

len()函数,可以查看字符串的长度


注意:

字符串中空格也是占长度的。


空串的长度是零。


中文,字母,数字,符号都是占一个长度。


特别的:包含转义字符的字符串长度是把每个转义字符当成一个字符,即\t是一个字符长度,而不是看上去的两个。

(2)      字符串链接

可以通过+连接字符串


(3)      字符串索引

Python有两种索引方式:

(一)  从前往后的正向索引:有m个字符长度的字符串,索引值是0m-1


(二)  从后往前的负数索引:有m个字符长度的字符串,索引值是-1-m


(4)      字符串切片

切片的意思就是:取出字符串中的子串。

切片最标准的写法就是用两个冒号分割三个数字。

第一个数字:切片的开始位置。

第二个数字:切片的截止位置,但是不包括这个位置,也就是切到它的前一个位置结束。

第三个数字:切片的步长,当省略步长的时候,默认为1,可以省略后面的一个冒号。

例子:



切片越界的情况:


(5)      字符串转换

可以使用str函数将数字转换为字符串。


还可以用repr函数来转换字符串。在转换字符串时候,reprstr效果相同。区别在于,处理字符串时,repr会将一对表示字符串常量的单引号添加到转换之后的字符串中。



03

 字符串方法


字符串作为str类型对象,Python提供了一系列方法用于字符串处理。常用字符串方法如下:

(1)      capitalize()

将字符串第一个字母大写,其余字母小写,返回新的字符串。


(2)      count(sub[,start[,end]])

返回字符串sub在字符串x[start,end]范围内出现的次数,省略范围时查找整个字符串。


(3)      endswith(sub[,start[,end]])

判断[start,end]范围内的子字符串是否以sub字符串结尾。


(4)      startswith(sub[,start[,end]])

判断[start,end]范围内的子字符串是否以sub字符串开头。


(5)      find(sub[,start[,end]])

[start,end]范围内查找子字符串sub,返回第一次出现位置的偏移量。没有找到时,返回-1


(6)      index(sub[,start[,end]])

find()方法相同,只是在未找到子字符串时产生ValueError异常。


(7)      lower()

将字符串中的字母全部转换成小写。


(8)      upper()

将字符串中的字母全部转换成大写。


(9)      replace(old,new[,count])

从字符串开头,依次将包含的old字符串替换为new字符串,省略count时替换全部old字符串。指定count时,替换次数不能大于count


(10)  split([sep],[maxsplit])

将字符串按照sep指定的分割字符串分解,返回分解后的列表。Sep省略时,以空格作为分隔符。Maxsplit指定分解次数。




参考文献:

(1)《Python3基础教程》邓英、夏帮贵主编

(2)https://mp.weixin.qq.com/s?__biz=MzI5NDY1MjQzNA==&mid=2247484510&idx=2&sn=5952aab17eee11c8454906f8f8ffca46&chksm=ec5edb23db2952350601e9d0fd2fd2625b80c3b86bb620d961b6002bdc0249e6f872520ae35d&scene=21#wechat_redirect

### 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')) ``` 以上代码片段展示了从普通字符串到大写字母转化的过程,计算了一个含有四个汉字的长度,并演示了跨类型加法运算前后的必要步骤——即显式指定编解码规则以避免潜在冲突。 尽管上述内容适用于较旧版次的语言环境,但对于理解现代计算机科学领域内有关于文本表现形式的知识仍然具有重要意义。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值