python 字符转义_2500字 字符串专题总结

2e1bbe50c809d2a6a1038c1346316e7d.png
我的完整施工计划

已完成专题:

1.我的施工计划

2.数值专题

这篇是字符串专题总结

除了常见的数值型,字符串是另一种常遇到的类型。一般使用一对单引号或一对双引号表示一个字符串。

字符串中如果遇到 \ 字符,可能是在做字符转义,所谓的转义便是字符的含义发生改变,比如常用的\n 组合,转义后不再表示字符n本身,而是完成换行的功能。

类似的,还有很多转义字符,如 \t, 正则表达式中 \s\d等等。

接下来一一总结字符串常见用法,此专题展开的思维导图如下:

e74096dde6415387b2d937257cef0dec.png
字符串专题思维导图

1 字符串创建

一般使用一对单引号或一对双引号表示一个字符串。如下所示s 为字符串:

s = 'python' # 或 s = "python"

很多情况下单引号和双引号作用相同,但是一些情况还是存在微妙不同

例如,使用一对双引号("")时,打印下面字符串无需转义字符(也就是\字符):

In [10]: print("That isn't a horse")
That isn't a horse

但是使用一对单引号打印时,却需要添加转义字符 \,如下所示:

In [11]: print('That isn\'t a horse')
That isn't a horse

除此之外,如果遇到字符串偏长,一行容不下来,需要展示为多行。一对三重单引号'''或三重"""就会派上用场,它们能轻松实现跨行输入:

In [12]: print("""You're just pounding two
    ...: coconut halves together.""")
You're just pounding two
coconut halves together.

2 \ 转义

转义的语法:一个\+单个字符,组合后单个字符失去原来字面意义,会被赋予一个新的功能。

常见的转义字符:\n 完成换行,\t tab 空格等。

转义的另外一个重要作用是用于Python的正则。正则不仅指使用模块 re 完成字符串处理,还泛指很多常用包中函数的参数使用小巧的正则表达,比如数据分析必备包 pandasstr访问器中 split, cat 等方法参数中使用转义字符。

关于正则处理字符串的常见用法,后面会有一个单独的专题总结。

3 字符串与数字

字符串与数字结合也会十分有用,可以玩出很多有趣的花样。

数字n乘以字符串会克隆出n倍个原字符串:

In [42]: 3*'py'
Out[42]: 'pypypy'

20乘以字符-会绘制出一条虚线:

In [43]: 20*'-'
Out[43]: '--------------------'

2个字符串常量能直接结合,中间不用添加任何东西,如下:

In [14]: 'Py''thon'
Out[14]: 'Python'

单个字符还能与数值完成互转,内置函数ord转换单个字符为整型,chr函数转换整数为单个字符:

In [35]: ord('振')
Out[35]: 25391
In [36]: chr(25391)
Out[36]: '振'

还能使用bytes函数将字符串转为字节类型(bytes),使用str函数转化字节类型为字符串:

s = 'python'
sa = bytes(s,encoding='utf-8')
s = str(sa,encoding='utf-8')

4 字符串打印及格式化

常规打印一个字符串比较简单,如果打印字符串中含有变量,该怎么正确打印。一般有两种方法:

  1. 使用 format 函数

字符串变量使用一对花括号{}, format 参数中指定变量的取值:

>>> print("i am {0},age {1}".format("tom",18))
i am tom,age 18
  1. f打印

f 后面紧跟一个字符串,其中花括号{}中直接写出变量名称,显然这种含有变量的打印方法更加符合大多数人的习惯:

In [45]: tom = 'tom'
In [46]: age = 18
In [47]: print(f'i am {tom}, age {age}')
i am tom, age 18

除了知道如何打印字符串,还有一项重要的事:如何控制字符串的打印。

虽然这是一个非常小的功能,但是知道一些常见的控制方法,却能使得书写更加简洁。常见的控制打印用法:

ce5ae8f1001aeab0b2597423e0ed40df.png

输出中如何控制保留两位小数,整数补零填充,对齐,百分比格式打印,整数太长使用科学计数法打印等等。可以记住如下7种常见用法:

(1). 保留小数点后两位

# 1 保留小数点后两位
>>> print("{:.2f}".format(3.1415926)) 
3.14

(2). 带符号保留小数点后两位

>>> print("{:+.2f}".format(-1)) 
-1.00

(3). 不带小数位

>>> print("{:.0f}".format(2.718)) # 不带小数位
3

(4). 整数补零,填充左边, 宽度为3

>>> print("{:0>3d}".format(5)) # 整数补零,填充左边, 宽度为3
005

(5). 以逗号分隔的数字格式

>>> print("{:,}".format(10241024)) # 以逗号分隔的数字格式
10,241,024

(6). 百分比格式

>>> print("{:.2%}".format(0.718)) # 百分比格式
71.80%

(7). 指数记法

>>> print("{:.2e}".format(10241024)) # 指数记法
1.02e+07

5 字符串常见处理操作

字符串对应Python中的 str 类型,其内置封装的方法有几十个,下面列举一些常用的必知的用法。

join 串联多个字符串,注意Python中没有单个字符这种类型,单个字符在Python中也会被当作str类型。如下连接多个字符串,最终打印出 Python串:

chars = ['P', 'y', 't', 'h', 'o', 'n']
name = ''.join(chars)

既然有串联字符串,就应该有相反的操作:分割字符串,一般使用split函数,第一个参数指明分割字符串使用的分割符:

In [49]: 'col1,col2,col3'.split(',')
Out[49]: ['col1', 'col2', 'col3']

split还有第二个参数指明需要做的分割次数,比如只做一次分割,得到如下两个元素:

In [51]: 'col1,col2,col3'.split(',',1)
Out[51]: ['col1', 'col2,col3']

split默认是从左侧开始分割字符串,与之对应的另一个函数rsplit就是从右侧开始分割字符串,某些场景rsplit函数更好用一些。从右侧开始只做一次分割可以写为:

In [52]: 'col1,col2,col3'.rsplit(',',1)
Out[52]: ['col1,col2', 'col3']

除了以上两个常用的方法,还有replace,startswith,strip,lstrip等等经常也会用到,在此不再一一举例。

以上就是字符串处理的基本用法专题,主要总结了:

  • 1 字符串创建

  • 2 \ 转义

  • 3 字符串与数字

  • 4 字符串打印及格式化

  • 5 字符串常见处理操作

最后,以一个更有意思的小功能作为本专题的收尾。

已知下面一个长句,将其转化为多行,每行只有11个字符。

words = '是想与朋友们分享一个再普通不过的道理:脚踏实地做些实事,哪怕是不起眼的小事,每天前进一点,日积月累会做出一点成绩的。'

借助内置的textwrap模块中fill方法,实现每行11个字符:

import textwrap
r = textwrap.fill(words,11)
print(r) 

结果:

是想与朋友们分享一个再
普通不过的道理:脚踏实
地做些实事,哪怕是不起
眼的小事,每天前进一点
,日积月累会做出一点成
绩的。

送 2 本书:Python数据分析与挖掘实战,最走心留言送1本,点赞最多送1本。后面凡是专题类文章都会送几本书,欢迎朋友们星标振哥的公众号,多多留言与振哥互动,根据最新推送规则你会第一时间收到推文。点击了解此书详情:

Python数据分析与挖掘实战(第2版)

此书简介:畅销书全新升级,第1版销售超过10万册,被国内100余所高等院校采用为教材,同时被广大数据科学工作者奉为经典,是该领域公认的事实标准。作者在大数据挖掘与分析等领域有10余年的工程实践、教学和创办企业的经验,不仅掌握行业的技术和实践方法,而且洞悉学生和老师的需求与痛点。


原创不易,最后希望朋友们能点个在看或分享朋友圈支持振哥,叫我更有动力写好下一篇专题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA入门级教学之(异常机制的原理到底是什么)

* 1.异常是什么? * * 第一:异常模拟的是现实世界中"不正常的"事件 * * 第二:java中采用"类"的形式去模拟异常 * * 第三:类是可以创建对象的 * * 例如&#xff1…

python修改列表指定位置的_Python 基础教程—列表(1)

Python内置了多种序列,本次讨论:列表。列表是Python提供的容器型数据类型。可变并且有序。可变 - 列表中的每个元素的值可变,列表的长度可变,列表中的顺序可变。(支持增、删、改)有序 - 每个元素可以通过下标来确定位置1、 列表的…

操作系统之(一篇文章让你简单搞定:什么是进程和线程)

文章目录1.为什么引入进程2.进程究竟是什么?进程的定义和属性:3.进程的状态和转换4.什么是进程上下文5.进程的控制和管理6.为什么要引入线程7.线程的概念8.引入线程的好处9.进程和线程的区别1.为什么引入进程 1、我们知道,最早出现的OS系统是…

冒泡和快速排序的时间复杂度_八大排序算法性能分析及总结

一、排序算法说明排序的定义&#xff1a;对一个无序的序列进行排序的过程。输入&#xff1a;n个数&#xff1a;a1,a2,a3,…,an。输出&#xff1a;n个数的排列:a1,a2,a3,…,an&#xff0c;使得a1<a2<a3<…<an。排序的稳定性&#xff1a;相同值的节点相对位置是否会发…

docker 挂载目录_Docker容器数据管理

在Docker容器内部创建的文件默认存储在可写的容器层&#xff0c;容易产生几个问题:当容器不存在时&#xff0c;数据文件不能持久化&#xff0c;同时这些数据文件不方便在容器之外被其他进程使用。当容器运行的时候容器可写层严重依赖宿主机&#xff0c;不能轻易移动这些数据文件…

IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReady

打开AS有时会报这个错&#xff0c;之前没怎么在意&#xff0c;因为完全没影响&#xff0c;但是看起来标红就很难受&#xff0c;总觉得认真有强迫症的程序员才是好的程序员&#xff0c;所以特意查了解决办法&#xff0c;也很简单&#xff0c;就点击Files----->Invalidate and…

java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!

程序员的成长之路互联网/程序员/成长/职场 关注阅读本文大概需要 10 分钟。来源&#xff1a;https://yq.aliyun.com/articles/662001在 Java 程序中&#xff0c;性能问题的大部分原因并不在于 Java 语言&#xff0c;而是程序本身。养成良好的编码习惯非常重要&#xff0c;能够显…

android平板截屏方法,Android 各种截屏方法

1 应用内截屏(无SurfaceView, TextureView)boolean cacheEnable captureView.isDrawingCacheEnabled();captureView.setDrawingCacheEnabled(true);captureView.buildDrawingCache();Bitmap bitmap captureView.getDrawingCache();cache[0] Bitmap.createBitmap(bitmap);cap…

新手操作HTML

一、 首先得学会使用HTML5-API手册&#xff0c;因为HTML的属性有很多很多&#xff0c;如果将这些属性全部记下来的话得不偿失&#xff0c;需要花费大量的时间和经历&#xff0c;因此我们需要学会使用这个帮主文档才能全面而深入的了解HTML&#xff1b; 就像你去找对象一样&am…

nginx 判断手机端跳转_nginx基本功能和工作原理

nginx能做什么反向代理正向代理负载均衡HTTP服务器(包含动静分离)反向代理和正向代理1.正向代理简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内…

Node.js教程-express框架

概述 Express是基于Node.js平台(建立在Node.js内置的http模块上)&#xff0c;快速、开放、极简的Web开发框架。 中文官网 http://www.expressjs.com.cn/。 Github地址&#xff1a;https://github.com/orgs/expressjs。 Express核心特性&#xff1a; 可设置中间件来响应 HTTP…

python猜数字游戏续_python3实现猜数字游戏

本文实例为大家分享了python3实现猜数字游戏的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 需求目标&#xff1a; 需求:猜数字游戏 1: 开始游戏产生一个1~100随机数 2: 用户输入&#xff0c;游戏根据输入值提示大或者小 3: 用户根据提示继续输入&#xff0c;知道猜…

HTML的script标签

在 HTML 页面中插入一段 JavaScript&#xff1a; 这句话可能大家一开始根本不了解JavaScript&#xff0c;是什么&#xff1f; 在我的了解中JavaScript并不是用java语言开发的&#xff0c;人家用的是c语言和另外一种语言的结合体&#xff0c;就像印度和印度尼西亚根本不是同一…

tesseract4.0.0 中文语言包_一份TensorFlow2.0中文教程

近两个月&#xff0c;网上已经出现了大量 TensorFlow 2 0 英文教程。在此文章中&#xff0c;本文为大家推荐一个持续更新的中文教程&#xff0c;以便大家学习。来源&#xff1a;机器之心今年 3 月份&#xff0c;谷歌在 Tensorflow Developer Summit 2019 大会上发布 TensorFlow…

HTML的块级元素和行级元素的标签列表

行内元素列表: <a>标签可定义锚点 <abbr>表示一个缩写形式 <acronym>定义只取首字母缩写 <b>字体加粗 <bdo>可覆盖默认的文本方向 <big>大号字体加粗 <br>换行符号 <cite>引用进行定义 <code>定义计算机代码文…

mysql select count 5万条数据很慢_mysql亿级数据数据库优化方案测试银行交易流水记录的查询...

点击上方△蓝字关注我们带你征服编程和泡妞两座大山对MySQL的性能和亿级数据的处理方法思考&#xff0c;以及分库分表到底该如何做&#xff0c;在什么场景比较合适&#xff1f;比如银行交易流水记录的查询限盐少许&#xff0c;上实际实验过程&#xff0c;以下是在实验的过程中做…

jvm垃圾回收机制_干货|JVM垃圾回收机制

前言不同于C程序员必须自己完成内存的分配、使用和释放&#xff0c;JAVA语言提供了垃圾回收机制(GC&#xff0c;Garbage Collection)&#xff0c;所以JAVA程序员仅需要负责分配和使用内存即可&#xff0c;而释放内存则由GC负责。这样程序员就从讨厌的内存管理的工作中脱身了。本…

HTML的列表说明

<ul></ul>无序列表&#xff08;Unordered List&#xff09; <ol></ol>有序列表 (Ordered List) <li> 标签定义列表项目。 <li> 标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中 两个常用的CSS列表属性 CSS3帮助文档 li…

计算机考试网络应用题一定要做到ie浏览器,网络远程教育统考单项练习:计算机应用基础之Internet应用部分(二)...

计算机考试的分数提高离不开日常的练习&#xff0c;下面&#xff0c;就做几道Internet应用部分的题目练习和巩固一下吧&#xff01;1、在IE9浏览器中按地址栏后的“停止”按钮&#xff0c;浏览器将会______。A.中断正在浏览的web页的连接B.关闭该web页的页面C.关闭浏览器窗口D.…

javascript实现图片轮播_第2章 第9节 JavaScript(四)

● 知道哪些ES6&#xff0c;ES7的语法参考回答&#xff1a;promise&#xff0c;await/async&#xff0c;let、const、块级作用域、箭头函数● promise和await/async的关系参考回答&#xff1a;都是异步编程的解决方案● 问了一段js代码&#xff0c;输出结果是什么● js的数据类…