Python基础数据类型-字符串(string)
Python基础数据类型-字符串(string)
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟,请知晓。
一.字符串的基本操作
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- #@author :yinzhengjie
- #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
- #EMAIL:y1053419035@qq.com
- name = " yinzhengjie "
- print(name.capitalize()) #将首字母大写
- print(name.count("e")) #统计"e"这个字母在name变量中的字符串出现的次数
- print(name.center(50,"=")) #打印50个字符,如果name这个变量中的字符串总个数不足50个,少出来的位置用“=”来填补,将name这个变量居中。
- print(name.ljust(50,"*")) #打印50个字符,如果name这个变量中的字符串总个数不足50个,少出来的位置用“=”来填补,但并不是将name这个字符串居中,而是打印整个字符串,不够50个字符串的用“*"号填补。
- print(name.rjust(50,"*")) #这个和上面的相反,将整个字符串的占位打在右边,左边不足50个字符的用"*"填补.
- print(name.endswith("jie")) #判断一个变量是否以“jie”这个字符串结尾,如果是就返回Ture.
- print(name.find("e")) #在name这个字符串中查找含有name字样的索引,从左往右开始查找,将查找的第一个返回出来,也就是最靠左边的那个.
- print(name.rfind("e")) #从左往右开始查找,将查找到的最靠右的匹配结果的索引取出来.
- print(name[name.find("n"):]) #字符串和列表都有相同的功能,都可以支持切片,比如这个例子就是取“n”这个字符后面的所有字符.
- print(name.isalnum()) #判断字符串是否仅仅包含[a-z][A-Z][0-9]
- print(name.isalpha()) #判断字符串仅仅包含[a-z][A-Z]
- print(name.isdecimal()) #判断字符串是否是十六进制的数字
- print(name.isdigit()) #判断该字符串是否是一个整数
- print(name.isidentifier()) #判断是不是一个合法的标识符
- print(name.islower()) #判断前面的字符串是否都是小写
- print(name.isupper()) #判断前面的字符串是否都是大写
- print(name.isnumeric()) #判断该变量是否是一个十进制的数字
- print(name.isspace()) #判断前面的字符串是否是一个空格
- print(name.istitle()) #判断这个字符串的每个字母是否大写
- print(name.isprintable()) #判断前面的字符串是否支持打印功能,一般字符串都是可以打印的。在linux中一切都是文件,一些tty,drive等终端文件是不能打印的,就可以用这个来判断,用途比较少
- print(name.lower()) #将大写变成小写
- print(name.upper()) #将小写变成大写
- print(name.lstrip()) #只去掉左边的换行符或者空格
- print(name.rstrip()) #只去掉左边和右边的换行符或者空格
- print(name.strip()) #去掉字符串左右两边的空格和换行符.
- #以上代码执行结果如下:
- yinzhengjie
- 2
- ============== yinzhengjie ===============
- yinzhengjie *****************************
- ***************************** yinzhengjie
- False
- 10
- 15
- nzhengjie
- False
- False
- False
- False
- False
- True
- False
- False
- False
- False
- True
- yinzhengjie
- YINZHENGJIE
- yinzhengjie
- yinzhengjie
- yinzhengjie
二.字符串的格式化输出操作
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- #@author :yinzhengjie
- #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
- #EMAIL:y1053419035@qq.com
- '''
- 字符串格式化:将数字和字符串相结合
- '''
- #注意,%s和%d都是占位符哟!
- msg = "我的名字是%s,年龄是%d,爱好是:%s"%("尹正杰",18,"Python")
- print(msg)
- name = "我的英文名字是:%s"% "yinzhengjie"
- print(name)
- #以上代码执行结果如下:
- 我的名字是尹正杰,年龄是18,爱好是:Python
- 我的英文名字是:yinzhengjie
占位符格式化案例展示,以下都是字符串的方法实现的格式化输出
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- #@author :yinzhengjie
- #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
- #EMAIL:y1053419035@qq.com
- UserInformation = "My \tname is {name} and I love play {hobby}!"
- print(UserInformation)
- print(UserInformation.expandtabs(tabsize=50)) #自定义tab的间隔打小,该处是指定tab的间隔是50个空格。
- print(UserInformation.format(name="Yinzhengjie",hobby="Skating")) #以定义一个变量的形式传递一个参数到“UserInformation”的字符串中
- print(UserInformation.format_map({'name':"Yinzhengjie",'hobby':"Skiing"}))
- print('+'.join(['','',''])) #将一个列表的信息追加到前面的字符串中。
- #以上代码执行结果如下:
- My name is {name} and I love play {hobby}!
- My name is {name} and I love play {hobby}!
- My name is Yinzhengjie and I love play Skating!
- My name is Yinzhengjie and I love play Skiing!
- 1+2+3
三.字符串的进阶操作
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- #@author :yinzhengjie
- #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
- #EMAIL:y1053419035@qq.com
- passwd = str.maketrans("abclefghijklmnopqrstuvwxyz",'1234567890!@#$%^&*()_+-={}') #将前面的字符串后后面的数字和特殊字符一样匹配,对应的数字会转换成相应的字符。
- print("yinzhengji111e".translate(passwd)) # 将上面自定义的参数,合这里面的字符想对应,如果穿进去的参数没有对应的字符就不匹配。这个跟Linux的密码加密有点类似哟。
- print('yinzhengjie'.replace('e', 'E', 2)) # 将字符串中的某个字符换成另外的一个字母或者数字(字符),后面可以匹配相应的次数,依次从左往右开始匹配。
- print('yin zheng jie'.split()) # 将字符串按照空格分成一个列表
- print('1+2+3+4+5'.split('+')) # 用“+”作为分隔符,将其变成一个列表,如果不指定的话是以默认以空格分隔符的,例子如上
- print('YinZhengJie'.swapcase()) # 将字符串中的大小写互换
- print('yin zheng jie'.title()) # 将以空格为分隔符的所有的小写字母变大写
- print('yinzhengjie'.zfill(50)) # 总共需要打印50个字符,如果字符串不够的话前面用0占位
- #以上代码执行结果如下:
- {9$}85$7091115
- yinzhEngjiE
- ['yin', 'zheng', 'jie']
- ['', '', '', '', '']
- yINzHENGjIE
- Yin Zheng Jie
- 000000000000000000000000000000000000000yinzhengjie
四.字符串编码操作
我们在计算机上编辑工作文档或是发博客文章等等,最终这些数据都会保存到我们的磁盘上去,那么保存到磁盘到底是以什么样的方式进行保存的呢?其实就是以连续的“0”或者“1”的方式进行保存的。连续八个“0”或者“1”我们称之为一个字节(1byte=8bits)。存储汉字有很多种编码格式,如Unicode,也有utf-8,还有gbk,gb2312等等。接下来我们就一起看看如何将字符串进行编码解码操作(编码就是讲数据类型(字符串)转换成二进制(当然可以用十六进制去读取),解码就是相反的操作)。
- #!/usr/bin/env python
- #_*_coding:utf-8_*_
- #@author :yinzhengjie
- #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
- #EMAIL:y1053419035@qq.com
- name = "尹正杰"
- v1 = name.encode(encoding="utf-8") #这就是对字符串做编码操作,将数据从字符串类型转换成二进制类型,但是显示的时候并不是“0”或者“1”哟,而是以十六进制显示。
- print(v1)
- v2 = name.encode(encoding="gb2312")
- print(v2)
- v3 = name.encode(encoding="gbk") #和上面操作一样,只不过我们这里指定这个字符串编码格式以“gbk”方式进行编码,这样我们就可以将这个数据写入到磁盘上去。
- print(v3)
- v4 = v3.decode(encoding="gbk") #这里就是进行解码操作,需要传入V3编码的格式,如果格式和V3编码格式不一致就会报错哟!如:UnicodeDecodeError.
- print(v4)
- v5 = v2.decode(encoding="gb2312")
- print(v5)
- v6 = v1.decode(encoding="utf-8")
- print(v6)
- #以上代码执行结果如下:
- b'\xe5\xb0\xb9\xe6\xad\xa3\xe6\x9d\xb0'
- b'\xd2\xfc\xd5\xfd\xbd\xdc'
- b'\xd2\xfc\xd5\xfd\xbd\xdc'
- 尹正杰
- 尹正杰
- 尹正杰
Python基础数据类型-字符串(string)的更多相关文章
- Python基础——数据类型——字符串
整数.浮点数.布尔值的用法大同小异,而Python字符串的一些用法不易记住,这里以廖雪峰教程为基础,进行一些思考和复习总结. 字符串是什么? 以单引号'或者双引号"括起来的任意文本,比如:& ...
- Python基础数据类型之字符串
Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...
- 1--Python 入门--Python基础数据类型
一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...
- 图解python | 基础数据类型
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...
- GoLang基础数据类型--->字符串处理大全
GoLang基础数据类型--->字符串处理大全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入: 高级运维工程师之路 59843264 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- python 基础数据类型之list
python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...
- Python基础数据类型题
Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...
随机推荐
- 2017BUAA软工个人作业Week1
大概的功能已经满足 暂时只能用debug中的exe文件 正在改进... https://github.com/qwellk/project1/tree/product1 PSP2.1 Personal ...
- VM虚拟机—JVM内存
JVM在运行时将数据划分为了5个区域来存储,这5个区域图示如下: 其中方法区和堆对是所有线程共享的内存区域:而java栈.本地方法栈和程序员计数器是运行时线程私有的内存区域. 首先我们熟悉一下一个 J ...
- vCenter机器查找功能不可用的解决
1. 公司内有多个vCenter机器, 不同的部门 组别 有不通的vCenter来进行管理 最近发现有一个管理比较多的组别的vCenter下载远程登录的情况下总是无法进行高级搜索 造成想找一个虚拟机 ...
- 一本通1587【例 3】Windy 数
1587: [例 3]Windy 数 时间限制: 1000 ms 内存限制: 524288 KB 题目描述 原题来自:SCOI 2009 Windy 定义了一种 Windy 数:不含前 ...
- BZOJ3732Network——kruskal重构树+倍增+LCA/最小生成树+倍增
题目描述 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 & ...
- AGC005F Many Easy Problems(NTT)
先只考虑求某个f(k).考虑转换为计算每条边的贡献,也即该边被所选连通块包含的方案数.再考虑转换为计算每条边不被包含的方案数.这仅当所选点都在该边的同一侧.于是可得f(k)=C(n,k)+ΣC(n,k ...
- Ubuntu 安装 hadoop
安装完Linux后,我们继续(VMWare 安装 Linux http://blog.csdn.net/hanjun0612/article/details/55095955) 这里我们开始学习安装 ...
- hdu 3397 Sequence operation (线段树 区间合并 多重标记)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3397 题意: 给你一串01串,有5种操作 0. 区间全部变为0 1.区间全部变为1 2.区间异或 3.询问 ...
- xml文件格式化后不能获取到值
在有些时候,我们要使用到xml文件,必须得将文件中的内容压缩成一行,才能读取到其中的值,一旦有换行符.制表符.空格之类的就读不到.所以只能在开发好以后,将代码压缩再执行,十分不方便. 尝试了几个替换符 ...
- 软Raid5制作
以raid5为例: 1.添加4块磁盘要求:容量.转速.接口一样的硬盘. 2.创建分区并修改ID[root@localhost ~]# fdisk /dev/sdb[root@localhost ~]# ...