Python 从入门到实战13(字符串简介)

devtools/2024/12/22 16:52:12/

·        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

      上篇文章我们通过举例学习了流程控制语句中的循环语句。今天继续讨论基本数据类型:字符串。

字符串是连续的字符序列,也是序列的一种。

1、字符串定义

字符串是一种序列,一般是双引号或者单引号括起来的元素序列。其中若使用’’ 单引号或者双引号””字符序列需要在同一行,若是使用’’’ ‘’’ 三引号可以分布在连续的多行。

举例说明:

#coding=utf-8
str1 = "我爱祖国!"
str2 = 'abcde'
str3 = '''我是男生,喜欢
打篮球。
'''
print(str1)
print(str2)
print(str3)

输出结果:

2、常见的转义字符

\     -------续行符

\n    -------换行符

\0    -------空

\t    --------水平制表符,用于横向跳到下一制表符

\”    --------双引号

\’    ---------单引号

\\    ---------一个反斜杠

\f    ---------换页

\0dd  ---------八进制数,dd代表字符

\xhh  ---------十六进制

3、字符串编码转换

最早的字符串编码是美国标准信息交换码,即ASSCII码。后面各国都需要编码,于是出现了GBK、GB2312、UTF-8编码等。GBK、GB2312是我国制定的中文编码标准,使用一个字节表示英文字母,两个字节表示中文字符。UTF-8是国际通用的编码,对全世界所有国家需要用到的字符都进行了编码,它采用一个字节表示英文字符,用3个字节表示中文。在python 3.x 中,默认采用UTF-8编码,这种编码避免了中文乱码问题的发生。

另外,在python 中有两种常用的字符串类型,如str、bytes。其中str表示Unicode 字符(ASSCII或者其他),bytes表示二进制数据。

注意:bytes 类型的数据是带有b前缀的字符串(使用单引号或者双引号表示)。如,b’\xd2\xb0’

和b’mr’都是bytes 类型的数据

1)使用encode()方法编码

使用encode()方法将str转化为二进制数据(bytes),这个过程也成为编码。

参考语法:str.encode([encoding=”utf-8”][,errors=”strict”])

说明:   str------表示要进行转换的字符串

         encoding=”utf-8”-------可选参数,指定的转换时需要采用的编码

          errors=”strict”-------可选参数,用于指定错误处理方式,其可选strict(遇到非法字符就抛出异常),ignore(忽略非法字符),replace(用“?“替代非法字符)

注意:使用encode()方法时不会修改原字符串。

举个小栗子:

str3 = '''我是男生,喜欢
打篮球。
'''
byte1 = str3.encode('GBK')
byte2 = str3.encode('utf-8')
print("原字符串为:",str3)
print("转换后的字符串:",byte1)
print("转换后的字符串:",byte2)

采用两种不同的编码方法输出的结果不同。

打印结果:

2)使用decode()方法解码

使用decode()方法用于将二进制数据转换为字符串。也称之为解码。

使用语法:   bytes.decode([encoding=”utf-8”][,errors=”strict”])

说明:   bytes ------表示要进行转换的二进制数据

        encoding=”utf-8”-----------可选参数,指定的转换时需要采用的编码

        errors=”strict”-------可选参数,用于指定错误处理方式,其可选strict(遇到非法字符就抛出异常),ignore(忽略非法字符),replace(用“?“替代非法字符)

注意:在指定解码采用的字符编码时,需要采用与编码时采用的字符编码一致。

我们举个例子:

str3 = '''我是男生,喜欢
打篮球。
'''
byte1 = str3.encode('GBK')
byte2 = str3.encode('utf-8')
print("原字符串为:",str3)
print("转换后的字符串:",byte1)
print("转换后的字符串:",byte2)
#解码:
str_new1 = byte1.decode("GBK")
str_new2 = byte2.decode("GBK")
print(str_new1)
print(str_new2)

由于上面黄色标识的部分解码和编码的格式不一样就会报错。

需改好正常执行:

4、字符串拼接

这个比较简单,直接使用+即可完成。

举个小栗子:

str1 = "我爱祖国!"
str2 = 'I am Dewi,'
str3 = '''我是男生,喜欢
打篮球。
'''
print(str1+ str2 +str3)

输出如下:

5、计算字符串的长度

由于不同的字符占字节数不同,因此要计算字符串的长度,需要先了解各个字符所占的字节数。一般数字、英文、小数点、下划线和空格占一个字节;一个汉字可能会占用2-4个字节,取决于采用的编码。

汉字在GBK/GB2312 占2个字节

汉字在UTF-8/Unicode 占3个或者4个字节

举例说明:

str1 = "我爱祖国!"
str2 = 'I am Dewi,'
str_add = str2 + str1
print(len(str_add))   #默认时计算,所有英文、数字、汉字、空格都是一个字符(占一个字节)
print(len(str_add.encode("utf-8")))#指定utf-8,汉字占3个字节,其它占一个字节,4*3+11
print(len(str_add.encode("GBK")))#指定GBK,汉字占2个字节,其它占一个字节,4*2+11

输出结果参考:

今天先写到这里了,每天进步一点点。今天也要加油啊!


http://www.ppmy.cn/devtools/110295.html

相关文章

实现C程序绑定TCP端口

实现C程序绑定TCP端口 步骤概述伪代码C代码实现解释在网络编程中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。绑定TCP端口是服务器端应用程序在网络通信中的一个关键步骤,它允许服务器监听来自客户端的连接请求。 本文将介绍如何使用C语言…

【C-实践】文件服务器(1.0)

文件服务器2.0文件服务器3.0文件服务器4.0 概述 使用了 tcp epoll 进程池,实现文件下载服务器 功能 主要功能:客户端连接服务器,然后自动下载文件 次要功能:客户端接收时显示进度条 启动 启动服务器 1、在bin目录下生成可执行…

SpringBoot学习(18)使用spring-boot-admin监控SpringBoot

什么是 Spring Boot Admin? Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过 HTTP 或者使用 Eureka 注册到 admin server 中进行展示,Spring Boot Admin UI 部分使用 VueJs 将数据展示在前端。 …

【爬虫软件】小红书笔记批量采集工具,含正文内容、IP属地、转评赞藏等

一、背景介绍 1.1 爬取目标 众所周知,小红书是国内最火热的种草社交平台,拥有海量的高品质用户,尤其以女性用户居多,相对于其他平台更具有消费能力。平台上的爆火笔记也成为众多媒体从业者的分析对象。于是,我用pytho…

如何使用elementui实现一个根据页面进度实时增长/前进的进度条

如何使用elementui实现一个根据页面进度实时增长/前进的进度条&#xff0c;当用户点击已完成进度条部分的任何一个值时&#xff0c;例如已完成70%点击35%可以跳到35%时对应的页面呢&#xff1f; <template><div><el-progress :percentage"progressPercent…

CSS之我不会

非常推荐html-css学习视频&#xff1a;尚硅谷html-css 一、选择器 作用&#xff1a;选择页面上的某一个后者某一类元素 基本选择器 1.标签选择器 格式&#xff1a;标签{} <h1>666</h1><style>h1{css语法} </style>2.类选择器 格式&#xff1a;.类…

Java超详细知识点——I/O流(字节流和字符流)

File类&#xff1a; Java API&#xff1a;java.io.File 类 是用来操作文件或文件夹的&#xff0c;无法用来读写 1.首先创建一下file的对象&#xff1a; 里面可以写相对路径或者绝对路径 File file new File("CCC.java"); 也可以使用其他构造方法 //String path …

【PyQt5 应用程序】PyQt基础组件:连接数据库

在开发现代应用程序时,与数据库的交互几乎是不可避免的。不论是存储用户信息、订单详情还是应用配置,数据库都扮演着核心角色。幸运的是,PyQt提供了一系列的工具来简化数据库的操作。在这一部分,我们将探讨如何使用PyQt连接到数据库,并通过具体的例子来说明如何进行数据的…