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)的更多相关文章

  1. Python基础——数据类型——字符串

    整数.浮点数.布尔值的用法大同小异,而Python字符串的一些用法不易记住,这里以廖雪峰教程为基础,进行一些思考和复习总结. 字符串是什么? 以单引号'或者双引号"括起来的任意文本,比如:& ...

  2. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  3. 1--Python 入门--Python基础数据类型

    一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...

  4. 图解python | 基础数据类型

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  5. GoLang基础数据类型--->字符串处理大全

    GoLang基础数据类型--->字符串处理大全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:   高级运维工程师之路               59843264 ...

  6. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  7. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  8. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  9. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

随机推荐

  1. 非post请求时整个url作为参数传递出现bug

    在非post请求使用整个url作为参数传递到后台时会出现url被截断的bug,这时通过encodeURIComponent进行url的编码可以解决.示例如下: <!--参数url-->Ur ...

  2. GIthub地址

    https://github.com/cuibaoxue/Text1

  3. octave基本指令4

    octave基本指令4 图形化显示数据 >> t=[0:0.01:0.98]; >> y1 = sin(2*pi*4*t); %pi表示π >> plot(t,y1 ...

  4. Mysql 5.7.21 设置主从库同步

    主从复制条件: Mysql 单机多实例安装参考Mysql 5.7.21 设置主从库同步 下面的操作是多实例主从复制,3306为主库,3307为从库. 主库要开启log-bin,主库和从库的server ...

  5. vuex最简单、最详细的入门文档

    如果你在使用 vue.js , 那么我想你可能会对 vue 组件之间的通信感到崩溃 . 我在使用基于 vue.js 2.0 的UI框架 ElementUI 开发网站的时候 , 就遇到了这种问题 : 一 ...

  6. [百家号]雷电3和USB Type-C究竟有什么区别?

    雷电3和USB Type-C究竟有什么区别? https://baijiahao.baidu.com/s?id=1617271490773519582&wfr=spider&for=p ...

  7. jquery ajax中data属性详解

    $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , ...

  8. array与List之间相互转化

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/28 16:05 # @Author : zhang chao # @Fi ...

  9. 排查mysql innodb Lock wait timeout exceeded; try restarting transaction的问题

    OMG写的时候崩溃了一次. 触发关注这个问题的事情是 我们在使用pt-online-schedule 改表的时候总是拿不到锁,并且报出mysql innodb Lock wait timeout ex ...

  10. linux bin & sbin different

    linux bin & sbin different flutter & $PATH http://blog.taylormcgann.com/2014/04/11/differenc ...