Python 基础系列--字符串类型【3】

禅あ思 2019-05-17 14:05:27 ⋅ 752 阅读

字符串是编程必然面临的类型,常用指数之高,不得不先了解下Python中字符串的概念与常用方法


第一部分 基础

1. 不可变类型

作为不可变类型,主要涉及两个概念赋值、引用,先看三种定义字符串的方法

// 第一种var1 = 'Hello world'// 第二种var1 = "Pyhoth"// 第三种var2 = """ >>> a = "asd">>> id(a)4431000496>>> a = "122">>> id(a)4431000552"""

上边的代码涉及个问题:

1.1 为何说是不可变类型,怎么var1还可以等于Python?

Python 没有赋值,只有引用。可以从代码中第三种可以看出,同样的字符串a, 内存地址是不一样的。原因在于,第二次的所谓赋值,其实是重新创建一块内存,然后将a指向新内存地址

第二部分 内建函数

1 填充

var3 = "1234"# 填充字符串print(var3.center(10, "*"))print(var3.ljust(10, '^'))print(var3.rjust(10, "^"))print(var3.zfill(10))
# 返回值'''***1234***1234^^^^^^^^^^^^12340000001234'''

2 删减

var4 = "55785"print(var4.strip("5"))print(var4.lstrip("5"))print(var4.rstrip("5"))

返回值

787855578

3 变形

var5 = "thank yoU"print(var5.lower())print(var5.upper())print(var5.capitalize())print(var5.swapcase())print(var5.title())
'''thank youTHANK YOUThank youTHANK YOuThank You'''

4 切分

var6 = "7890"# 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.print(var6.partition('9'))print(var6.partition('2'))print(var6.rpartition("0"))var7 = "abz\nzxy"print(var7.splitlines())print(var7.split("z"))print(var7.rsplit("z"))

返回值

('78', '9', '0')('7890', '', '')('789', '0', '')['abz', 'zxy']['ab', '\n', 'xy']['ab', '\n', 'xy']

5 连接

var8 = "ikaf"print(var8.join("0000"))
# 判定var9 = "kj45"# 长度>0 && 都是字母或都是数字 true 否则falseprint(var9.isalnum())# 长度>0 && 都是字母 true 否则falseprint(var9.isalpha())print(var9.isdigit())print(var9.islower())print(var9.isupper())print(var9.isspace())print(var9.istitle())print(var9.startswith('k'))print(var9.endswith('5'))

6 查找

var10 = "1234567890zxc123vbndfgh"print(var10.count('123', 0, len(var10)))# 返回第一个满足条件的位置print(var10.find('3', 0, len(var10)))#print(var10.index('3', 0, len(var10)))# 找不到返回-1print(var10.rfind('mm', 0, len(var10)))# 找不到报错# print(var10.rindex('mm', 0, len(var10)))

返回值

222-1

7 替换

var11 = "aaaa111222hhhjjjkkk"print(var11.replace("a", "b", 2))# print(var11.translate())# translate(table[,deletechars])

8 编码解码

编码就是将字符串转换成字节码,涉及到字符串的内部表示。 解码就是将字节码转换为字符串,将比特位显示成字符。

var12 = "什么鬼"print(var12.encode())print(var12.encode().decode())
'''b'\xe4\xbb\x80\xe4\xb9\x88\xe9\xac\xbc'什么鬼'''

---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦




全部评论: 0

    我有话说:

    Python 3.8.6 发布

    Python 3.8.6 发布了,它是 Python 3.8 的第六个维护版本。 3.8 系列的维护版本将每两个月定期更新一次,3.8.7 计划于 2020 年 11 月中旬发布。 随着维护版本的

    Python 基础系列--序列类型【4】

    目标 1.对序列对象有整体的认识;2.掌握list的常用操作3.掌握tuple的常用操作4.理解深浅拷贝问题 第一部分 序列对象 1. 了解序列对象 Python一切皆对象。 1.序列对象包含str

    Python ORM框架SQLAlchemy 1.3.20 发布

    SQLAlchemy 1.3.20 发布了。SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射(ORM)框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库

    Python 基础系列-- 初识【1】

    人生苦短,我用 Python —— Life is short, you need Python

    Python 基础系列--数字类型【2】

    一步一脚脚印,方能走的更远

    MongoDB系列---数据类型/插入文档(三)

    ;3. 数字;4. 字符串;5. 数据;6. 对象...

    商城系统 DBShop V3.0 Beta 发布

    全新重构,首次亮相。 系统简介 DBShop企业级商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多

    「尝鲜」SpringBoot 快速整合Swagger 3.0

    第一步:Maven引入Swagger3.0 starter依赖 Maven项目中引入springfox-boot-starter依赖: <dependency> <

    Redis面试整理:Redis几种数据类型的用法和应用场景重新梳理了一下

    1、字符串 1.1 介绍 string 字符串类型是Redis中最为常用和基础的存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,也可以认为string字符串数据类型能够接收任何格式

    Redis系列基本用法&应用场景

        说明 redis的最基本使用方法以及使用场景。 字符串 // stringasync function stringFun() { const [key

    xrkmonitor 字符云监控系统 v3.3 日志系统增强

    该版本主要增强日志系统功能,包括引入通用日志文件监控插件,核心代码上日志系统新增日志数和日志类型统计图表,日志系统按配置大小自动滚动日志;插件架构上,插件配置项通过引用排序权重可实现排序显示,插件的

    Python 3.9.3 & 3.8.9 发布

    Python 3.9.3 & 3.8.9 现已发布,由于安全修复的原因,这些版本的发布时间比计划提前了一个月,但 Python 3.8 的最后一个完整的定期维护版本仍然计划在

    安全攻防系列一 安全基础概念

      该系列记录学习极客时间–安全攻防技能30讲相关内容 安全的本质 安全的本质就是保护数据被合法地使用。 数据:应用最核心的东西;如用户信息、订单信息等等 合法:大到法律法规、业务

    Python 3.9.1 发布,支持苹果 M1 和 macOS 11 Big Sur

    Python 3.9.1 已正式发布。Python 3.9.1 是 Python 3.9 的第一个维护版本,也是第一个在 Apple Silicon 上原生支持 macOS 11 Big Sur 的

    Python 3.9.2 和 3.8.8 现已发布

    Python 3.9.2 和 3.8.8 发布了。虽然在 3 天前才发过 RC 版本,但由于该版本包含两个安全性修复程序,在用户的敦促下,最终选择加急发布正式版。 接下来,将于 2021 年 5 月

    Python数据计算工具 PyMiner v2.1.0 Beta 发布!LGPL协议生效!

    PyMiner 是一个类似MATLAB的,但基于python的GUI数据计算工具,通过集成ipython和工作空间、编辑器、绘图、应用插件开发系统、统计和模型相关内容,用户可以在统一的界面程序中的

    Pyston v2 发布:比 Python 快 20%

    Pyston v2 已正式发布,Pyston 是 Python 的高度兼容实现,自称比 Python 更快。根据 Pyston 提供的宏基准测试结果,其 v2 版本比目前的 Python 3.8 快

    Pyston 2.1 发布,Python 的高度兼容实现

    Pyston 2.1 发布了。Pyston 是 Python 的高度兼容实现,自称比 Python 更快。根据 Pyston 提供的宏基准测试结果,其 v2 版本比目前的 Python 3

    WebMIS 1.0.0 beta.3 发布,全栈开发基础框架

    全栈开发基础框架,包括 PHP / Python / SpringBoot / Phalcon / Flutter / NodeJS / Vue / Swoole / Redis / API 等技术