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. 软件工程——移动的HelloWorld

    package disiti;       import java.awt.Color;   import java.awt.Cursor;   import java.awt.Font;   imp ...

  2. 关于singleton的几个实现

    public class Singleton { public static void main(String[] args) { Singleton s1 = Singleton.getInstan ...

  3. 小学四则运算APP 第一阶段冲刺

    需求分析 1.相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面.[1 ...

  4. 第五届蓝桥杯C++B组 地宫取宝

    代码: #include <bits/stdc++.h> using namespace std; #define ll long long const ll mod = 1e9 + 7; ...

  5. 变更RHEL(Red Hat Enterprise Linux 5.8)更新源使之自动更新

    HP 4411s Install Red Hat Enterprise Linux 5.8) pick up from http://blog.chinaunix.net/uid-423637-id- ...

  6. Java并发—synchronized关键字

    synchronized关键字的作用是线程同步,而线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. synchronized用法 1. 在需要同步的方法的方法签名中加入synchro ...

  7. pandas分组group

    Pandas对象可以分成任何对象.有多种方式来拆分对象,如 - obj.groupby(‘key’) obj.groupby([‘key1’,’key2’]) obj.groupby(key,axis ...

  8. visual studio 和 sql server 的激活密钥序列号

    VS2010: YCFHQ-9DWCY-DKV88-T2TMH-G7BHP VS2013: BWG7X-J98B3-W34RT-33B3R-JVYW9 VS2015: 专业版:HMGNV-WCYXV- ...

  9. html 框架 內聯框架

    框架的作用:可以在瀏覽器同時顯示不止一個html頁面.一個html文檔也叫做一個框架. 垂直框架:設置窗口垂直排列顯示成一行 <frameset cols="20%,80%" ...

  10. java 里面的 native 方法

    第一篇: 今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解. 一. 什么是Native Method   简单地讲,一个Native Meth ...