当前位置: 首页 > news >正文

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

·        我们的目标是:通过这一套资料学习下来,通过熟练掌握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

输出结果参考:

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

相关文章:

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

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们通过举例学习了流程控制语句中的循环语句。今天继续讨…...

Redis_RDB持久化

基于RDB的持久化方式会把当前内存中所有的redis键值对数据以快照的方式写入硬盘文件中,如果需要恢复数据,就把快照文件读到内存中。 RDB快照文件是经压缩的二进制格式的文件,它的储存路径不仅可以在redis服务器启动前通过配置参数来设置&…...

SOP流程制定:vioovi ECRS工时分析软件的智慧引领

在现代制造业中,标准化操作流程(SOP)已成为提升生产效率、确保产品质量、降低运营成本的关键要素。SOP不仅为生产活动提供了明确的指导,还促进了企业管理的规范化和精细化。然而,如何科学、高效地制定SOP流程&#xff…...

并发编程-synchronized解决原子性问题

并发编程-synchronized解决原子性问题 文章目录 并发编程-synchronized解决原子性问题零、说在前面一、线程安全问题1.1 什么是线程安全问题1.2 自增运算不是线程安全的1.3 临界区资源与临界区代码段 二、synchronized 关键字的使用2.1 synchronized 关键字作用2.2 synchronize…...

CSS之我不会

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

AI绘画:SD打光神器!(Stable Diffusion进阶篇:Imposing Consistent Light)

前言 在上一篇笔记中学习了如何简单地下载以及使用IC-Light&#xff0c;今天的内容会稍微有点不一样。 对于学过stable diffusion的小伙伴来说&#xff0c;forge UI和Comfy UI会更加熟悉一些。在IC-Light发布后&#xff0c;Openpose editor的开发者将其制作成了一个Forge UI上…...

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期] 第二期介绍&#xff1a;频道模块之频道管理 目录 QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]第二期介绍&#xff1a;频道模块之频道管理获取用户详情获取用户频道列表获取频道详情获取子频道列表获…...

参赛心得和思路分享:2021第二届云原生编程挑战赛2: 实现一个柔性集群调度机制

关联比赛: 2021第二届云原生编程挑战赛2&#xff1a;实现一个柔性集群调度机制 参赛心得 历时快两个月的第二届云原生编程挑战赛结束了&#xff0c;作为第一次参赛的萌新&#xff0c;拿下了28名的成绩&#xff0c;与第一名差了19万分&#xff0c;因为赛制时间太长&#xff0c…...

具体函数的卡诺图填入

目录 用卡诺图表示逻辑函数 基本步骤 例子1 例子2 例子3 用卡诺图表示逻辑函数 基本步骤 例子1 由真值表得卡诺图。 在函数值为1的地方在卡诺图上画上1。 例子2 例子3 非标准与或式&#xff0c;要找到公共部分。 将AB所在的那一行填上1。 将A非D的那个部分也填上1。 再…...

STM32 HAL freertos零基础(六)计数型信号量

1、计数型信号量 计数型信号量(Counting Semaphore)是另一种类型的信号量,它可以保持一个大于等于0的整数值,这个值表示可用资源的数量。本质上相当于队列长度大于1得队列。经典问题就是剩余车辆统计,出入车辆,车辆数据可以实时更新。 2、相关API函数 xSemaphoreCreat…...

Dynamics CRM Ribbon Workbench-the solution contains non-entity components

今天在一个低版本的环境里准备用Ribbon Workbench去编辑一个按钮时&#xff0c;遇到了如下错误 一开始没当回事&#xff0c;以为是我的解决方案问题&#xff0c;去检查了下&#xff0c;只有一个组件&#xff0c;并且哪怕我把组件换成了某个实体也不行&#xff0c;尝试了其他任何…...

谷歌对抗司法部:为什么谷歌的“数百个竞争对手”说法站不住脚

随着谷歌反垄断陪审团审判的进行&#xff0c;谷歌声称美国司法部对广告技术市场的看法狭隘&#xff0c;并且广告商和出版商有很多替代选择。然而&#xff0c;证据并不支持这一说法。 谷歌误导性地声称有“数百个竞争对手。” 虽然存在许多广告技术提供商&#xff0c;但谷歌在…...

重生奇迹MU 沉迷升级的快感 法魔升级机器人

重生奇迹MU是一款以升级为主要玩法的游戏。升级是游戏基础&#xff0c;也是最重要的部分。通过升级&#xff0c;玩家可以获得更多的基础属性奖励和自由点数奖励&#xff0c;同时还能够穿戴最好的装备和翅膀。因此&#xff0c;升级在游戏中具有极其重要的地位。 史上升级最快的…...

从地图到智能地图:空间索引技术如何改变我们的世界

图源&#xff1a;WL 为什么空间索引很有用? 在处理地理空间数据时&#xff0c;空间索引是一个至关重要的功能&#xff0c;它决定了我们如何高效地从海量的地理数据中检索出所需的信息。想象一下&#xff0c;如果你正在处理一个包含数千万乃至数亿条记录的数据库&#xff0c;…...

深入理解AI Agent架构,史上最全解析!赶紧码住!

AI Agent框架&#xff08;LLM Agent&#xff09;&#xff1a;LLM驱动的智能体如何引领行业变革&#xff0c;应用探索与未来展望 1. AI Agent&#xff08;LLM Agent&#xff09;介绍 1.1. 术语 Agent&#xff1a;“代理” 通常是指有意行动的表现。在哲学领域&#xff0c;Agen…...

苹果iOS/ iPadOS18 RC 版、17.7 RC版更新发布

iPhone 16 / Pro 系列新机发布后&#xff0c;苹果一同推出了 iOS 18 和 iPadOS 18 的 RC 版本&#xff0c;iOS 18 RC 的内部版本号为22A3354&#xff0c;本次更新距离上次发布 Beta/RC 间隔 12 天。 在 iOS 18 中&#xff0c;苹果给我们带来了 Apple Intelligence&#xff0c;这…...

CAN集线器(工业级、隔离式)

型号&#xff1a; MS-HUB-C 概述 MS-HUB 是一款可通过一路 CAN &#xff0c;一路 RS-232为主口扩展出 7 路 CAN 从口的工业级光电隔离型 CAN 分配器。可以有效的实现 CAN 网络的中继、扩展与隔离。采用先进的自动流控技术自动侦测CAN 信号流向。MS-HUB 具备光电隔离功能&#x…...

代码随想录训练营 Day57打卡 图论part07 53. 寻宝(prim,kruskal算法)

代码随想录训练营 Day57打卡 图论part07 卡码53. 寻宝 题目描述 在世界的某个区域&#xff0c;有一些分散的神秘岛屿&#xff0c;每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路&#xff0c;方便运输。 不同岛屿之间&#xff0c;路途距离不同&#xff0c;…...

Hibernate QueryPlanCache 查询计划缓存引发的内存溢出

目录 1.排查方式2.结论3.解决办法 前言&#xff1a;在生产环境中有一个后端程序多次报oom然后导致程序中断。 1.排查方式 通过下载后端程序产生的oom文件&#xff0c;将oom文件导入MemoryAnalyzer程序分析程序堆内存使用情况。 1、将oom文件导入MemoryAnalyzer后可以看到概览信…...

前端开发的观察者模式

什么是观察者设计模式 观察者模式&#xff08;Observer Pattern&#xff09;是前端开发中常用的一种设计模式。它定义了一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;其所有依赖对象都能收到通知并自动更新。观察者模式广泛应用于事件驱动的系…...

如何用MediaCrawler实现7大平台数据采集与追踪:从零到一的完整实战指南

如何用MediaCrawler实现7大平台数据采集与追踪&#xff1a;从零到一的完整实战指南 【免费下载链接】MediaCrawler 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 &#xff5c; 评论爬虫、微博帖子 &#xff5c; 评论爬虫、百度贴吧帖子 &#x…...

CANN/asc-devkit bfloat16精度转换函数

__float22bfloat162_rd 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://…...

如何5分钟掌握LDDC歌词工具:面向音乐爱好者的终极歌词管理指南

如何5分钟掌握LDDC歌词工具&#xff1a;面向音乐爱好者的终极歌词管理指南 【免费下载链接】LDDC 简单易用的精准歌词(逐字歌词/卡拉OK歌词)下载匹配工具|A simple and user-friendly tool for downloading and matching precise lyrics (word-by-word lyrics/Karaoke lyrics) …...

如何5分钟快速上手Mayo:新手入门完全教程

如何5分钟快速上手Mayo&#xff1a;新手入门完全教程 【免费下载链接】mayo 3D CAD viewer and converter based on Qt OpenCascade 项目地址: https://gitcode.com/gh_mirrors/ma/mayo Mayo是一款基于Qt和OpenCascade开发的免费开源3D CAD查看器和转换器&#xff0c;支…...

Perplexity谚语查询功能实测报告:7类典型误用场景+5步精准调优法,错过即降效40%

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity谚语查询功能的核心价值与适用边界 Perplexity 的谚语查询功能并非通用语言模型的简单问答接口&#xff0c;而是一个面向文化语义深度解析的专用能力模块。它依托高质量结构化谚语知识图谱与上下文感…...

Gemini 3.5 Flash 实测报告:快4倍、编程跑分超自家Pro,这6类场景到底该不该换?

Gemini 3.5 Flash 实测报告&#xff1a;快4倍、编程跑分超自家Pro&#xff0c;这6类场景到底该不该换&#xff1f; 问题背景 Google 在 2026 年 5 月发布了 Gemini 3.5 Flash&#xff0c;主打"前沿性能 Flash 价位"。从基准测试数据看&#xff0c;这款模型在编程跑分…...

RuoYi-Cloud项目导入避坑指南:从Maven配置到依赖下载的完整流程(附常见错误解决)

RuoYi-Cloud项目导入避坑指南&#xff1a;从Maven配置到依赖下载的完整流程 1. 项目准备与环境检查 在开始导入RuoYi-Cloud项目之前&#xff0c;确保你的开发环境已经准备就绪。这个微服务架构项目基于Spring Cloud Alibaba体系&#xff0c;对开发环境有特定要求&#xff1a; 基…...

Amphenol DRPC11A009040线束解析

随着服务器、高速通信设备以及工业控制系统对高速传输性能要求不断提升&#xff0c;越来越多工程师开始关注高可靠性线束组件的选型问题。其中&#xff0c;来自 Amphenol ICC 的 DRPC11A009040 线束组件&#xff0c;近年来在高速连接领域中被广泛关注。 作为国际连接器品牌的重…...

用树莓派和LED灯带,我亲手搭了个能跑程序的‘图灵机’(附完整代码和接线图)

用树莓派和LED灯带打造实体图灵机&#xff1a;从理论到硬件的沉浸式实践 当计算机科学从抽象的数学公式变成指尖跳动的LED灯光&#xff0c;理论突然有了温度。去年冬天&#xff0c;我在车库工作台前完成了这个项目——用树莓派和LED灯带构建的实体图灵机。当第一个加法程序成功…...

2026年大模型内容精准收录实操,企业长效流量布局核心方法论

引言&#xff1a;大模型正在成为企业品牌认知的新前置入口。当越来越多用户绕过搜索引擎、直接向AI提问"哪家公司更适合""某个方案值不值得选"时&#xff0c;企业在AI回答中的位置、语气和引用来源&#xff0c;已经构成真实的竞争格局。本文将从大模型内容…...