python之Character string(实例讲解)


Posted in Python onSeptember 25, 2017

1、python字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串,l

Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。

>>> var1 = 'hello python' #定义字符串
>>> print(var1[0]) #切片截取,从0开始,不包括截取尾数
h
>>> print(var1[0:5])
hello
>>> print(var1[-6:])
python
>>> var2 = var1[0:6]+'world' #截取字符并拼接赋值给新变量
>>> print(var2)
hello world

2、python转义字符

\

:在行尾时,为续行符

\\

:反斜杠转义,输出'\'

\'

:单引号转义

\"

:双引号转义

\b

:退格(backspace)

\n

:换行

\v

:纵向制表符

\t

:横向制表符

\r

:回车

\f

:换页

3、python字符串运算符

(+)拼接,(*)重复,([])索引,([:])切片,(in)成员判断,(not in)非成员判断,(r/R)元素输出字符串

>>> var1 = 'hello'
>>> var2 = 'python'
>>> print(var1+var2) #拼接字符串
hellopython
>>> print(var1*3) #重复输出字符串
hellohellohello
>>> print(var1[0]) #索引字符串
h
>>> print(var1[3:]) #索引切片
lo
>>> 'e' in var1 #判断字符串是否在变量中
True
>>> 'p' not in var1 #判断字符串是否不在变量中
True
>>> print("he\tllo \n") 
he llo 
>>> print(r"he\tllo \n") #原始输出字符串,也就是原始输出转义字符
he\tllo \n

4、格式化字符串

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

python字符串格式化符号:

%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

格式化操作符辅助指令:

* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

>>> print("ascii:%c"%'s') #格式化输出字符
ascii:s
>>> print("ascii:%c"%'1') #格式化输出数字
ascii:1
>>> print("str:%s"%'character string') #格式化字符串
str:character string
>>> print("str:%d"%888) #格式化整数
str:888
>>> print("str:%f"%888) #格式浮点数
str:888.000000
>>> print("str:%e"%888) #格式化科学计数浮点数
str:8.880000e+02
>>> print("str:%E"%888) #同上
str:8.880000E+02
>>> print("str:%G"%888) #%f和%E的简写
str:888

>>> print("str:%20f"%888.089) #定义20宽度输出
str:  888.089000
>>> print("str:%-20f"%888.089) #用左对齐
str:888.089000  
>>> print("str:%+20f"%888.089) #在正数前显示加号
str:  +888.089000
>>> print("str:%+-20f"%888.089) #左对齐显示加号
str:+888.089000  
>>> print("str:%020f"%888.089) #以0填充默认的空格
str:0000000000888.089000
>>> print("str:%%%20f"%888.089) #在数字前输入%号
str:%  888.089000
>>> print("str:%%%-20f"%888.089) #左对齐输出%号
str:%888.089000  
>>> print("str:%20.3f"%888.089) #显示最小总宽度20,小数点后位数为3位
str:  888.089

自python2.6开始,增加格式化字符串函数str.format():

用法:它通过{}和:来代替%

位置参数不受顺序约束,且可以为{}空,只要format里有相对应的参数值即可,如参数值不够就会报错,参数索引从0开,传入位置参数列表可用*列表

In [27]: '{}+{}={}'.format(1,2,3) #格式化按顺序应用参数值
Out[27]: '1+2=3'
In [28]: '{2}-{1}={0}'.format(1,2,3) #指定顺序应用参数值
Out[28]: '3-2=1'
In [29]: '{0}+{0}={1}'.format(2,3) #指定参数可以重复使用
Out[29]: '2+2=3'
In [30]: '{}+{}={}'.format(2,3) #如不指定顺序,format参数不够就会报错
---------------------------------------------------------------------------
IndexError    Traceback (most recent call last)
<ipython-input-30-29f40e412920> in <module>()
----> 1 '{}+{}={}'.format(2,3)
IndexError: tuple index out of range

In [31]: l1 = [2,4,8] 
In [32]: '{}*{}={}'.format(*l1) #使用列表引用参数值
Out[32]: '2*4=8'

In [33]: dct = {'name':'python','age':20} #定义字典
In [35]: 'welcom to {name},age is {age}'.format(name='qi',age=28) #变量引用
Out[35]: 'welcom to qi,age is 28'

In [36]: 'welcom to {name},age is {age}'.format(**dct) #使用**引用字典参数必须填写key值
Out[36]: 'welcom to python,age is 20'

填充与格式化:
In [53]: "{0: >20}".format("string") #从0位开始已空格填充20宽度左对齐
Out[53]: '  string'

In [54]: "{0:&>20}".format("string")
Out[54]: '&&&&&&&&&&&&&&string'

In [55]: "{0:#>20}".format("string") #使用#号会有个小bug
 ....: 
Out[55]: '##############string'

In [60]: '{0:+<20}'.format("string") #向右对齐填充+
Out[60]: 'string++++++++++++++'

In [61]: '{0:+^20}'.format("string") #剧中对齐填充+
Out[61]: '+++++++string+++++++'

精度与进制:
>>> '{0:.3f}'.format(10/3) #小数位进度格式化
'3.333'
>>> '{0:b}'.format(8) #格式化二进制
'1000'
>>> '{0:o}'.format(9) #格式化八进制
'11'
>>> '{0:x}'.format(26) #格式化十六进制
'1a'
>>> '{0:,}'.format(123456789) #千分位格式化
'123,456,789'

使用索引:
>>> l2 = ['AA',{'bb':'cc'},('d','e')] #列表索引引用
>>> 'outing:{0[0]}'.format(l2) 
'outing:AA'
>>> 'outing:{0[0]},{0[1]}'.format(l2) #将列表当成一个元素,在其中索引值
"outing:AA,{'bb': 'cc'}"

5、python的字符串方法

>>> s = 'i mi to' #将字符串的第一个字符改为大写
>>> s.capitalize()
'I mi to'

>>> s = 'I MI TO' #将字符串所有字符改为小写
>>> s.casefold()
'i mi to'

>>> s.center(15) #将字符串剧中,并用空格将字符串填充长度,如指定长度小于实际长度则没有效果
' I MI TO '

>>> s = 'abcabcabcabc' #返回sub在字符串里出现的次数,start,end为可选参数,决定范围
>>> s.count('a',0,12)
4
>>> s.encode(encoding='utf-8',errors='strict') #以encoding指定的编码格式对字符串进行编码
b'abcabcabcabc'
>>> s.endswith('abc',1,12) #检查字符串是否以sub结尾,是返回True,否返回False,start,end为可选参数,决定范围
True

>>> s = 'a\tb\tc'
>>> s.expandtabs(4) #把字符串的tab字符(\t)转化为空格,如不指定tabsize,默认为8个空格
'a b c'

>>> s.find('b') #检测字符串是否在字符串中,如在则返回索引,否则返回-1,可指定起始值。
2

>>> s='hello python'
>>> s.index('hello') # 类似find(),不同在于如果sub不在字符串中,返回异常
0 

>>> s.isalnum() #有空格返回false
False
>>> s='hellopython'
>>> s.isalnum() #如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则False
True
>>> s.isalpha() #如果字符串至少有一个字符,并且所有字符都是字母则返回True,否则False
True

>>> s = '123'
>>> s.isdigit() #如果字符串只包含数字则返回True,否则返回False
True

>>> s = '123'
>>> s.isdecimal() #如果字符串只包含十进制数字则返回True,否则返回False
True
>>> s= 'ox123'
>>> s.isdecimal()
False
>>> s = '0.33'
>>> s.isdecimal()
False

>>> s = 'abc'
>>> s.islower() #如果字符中至少包含一个能区分大小写的字符,并且这些字符都是小写则返回True,否则返回Flase
True
>>> s = 'Abc'
>>> s.islower()
False

>>> s = 'ABC'
>>> s.isupper() #果字符中至少包含一个能区分大小写的字符,并且这些字符都是大写则返回True,否则返回Flase
True
>>> s = 'ABc'
>>> s.isupper()
False
>>> 

>>> s = '123'
>>> s.isnumeric() #如果字符串只包含数字字符,则返回True,否则返回False
True
>>> s = '123a'
>>> s.isnumeric()
False

>>> 'def'.isidentifier() #判断字符串是否包含该语言的保留字
True

>>> 'aaa'.isprintable() #判断是否可以打印
True

>>> ''.isspace()
False
>>> ' '.isspace() #判断字符串中至少有一个字符且所有都是空格,否则返回false
True
>>> ' a'.isspace()
False

>>> 'Abc'.istitle() #判断是否是标题 格式,可以理解为首字母大写。
True
>>> 'aBC'.istitle()
False

>>> s = '123'
>>> '_'.join(s) #返回一个用指定字符串分隔的字,或者是将指定字符加入到另一个字符中。
'1_2_3'
>>> s.join('abc')
'a123b123c'

>>> s = 'ABC'
>>> s.lower() #返回的是指定字符串的拷贝,并转化成小写
'abc'

>>> s.ljust(10,'+') #可以指定宽度,以及填充字符串,返回的是按宽度,填充字符串格式化后的左对齐的字符串。
'ABC+++++++'

>>> 'aaabccc'.partition('b') #在字符串中查找指定的字符,如找到则返回字符前部分,字符本身和后部分,如没找到则返回字符串和两个空字符串。
('aaa', 'b', 'ccc')
>>> 'aaabccc'.partition('e')
('aaabccc', '', '')

>>> 'aaabccc'.rpartition('b') #与partition一样,但是是从右边开始
('aaa', 'b', 'ccc')
>>> 'aaabccc'.rpartition('c')
('aaabcc', 'c', '')


>>> 'aaaaabbcc'.replace('a','A') #用指定字符串替换指定字符串,如果不指定替换次数,则替换所有
'AAAAAbbcc'
>>> 'aaaaabbcc'.replace('a','A',2)
'AAaaabbcc'

>>> 'aabbcc'.rfind('a') #返回指定子串的最高索引,如果没找到则返回-1,可以指定要开始替换的起始,结束位置。
1
>>> 'aabbcc'.rfind('e')
-1
>>> 'aabbcc'.rindex('a') #与上面的rfind一样,只是如果没找到不是返回-1,而是触发错误
1
>>> 'aabbcc'.rindex('e')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: substring not found

>>> 'aa'.rjust(10,'+') #与ljust()相对应,右对齐
'++++++++aa'
>>> 'aa'.ljust(10,'+')
'aa++++++++'

>>> 'aabccbddbee'.split('b') ##按指定字符串对目标字符串进行切割,可以指定切割次数
['aa', 'cc', 'dd', 'ee']
>>> 'aabccbddbee'.split('b',2)
['aa', 'cc', 'ddbee']

>>> 'aabccbddbee'.rsplit('b',2) #与split作用相同,但是从右侧开始
['aabcc', 'dd', 'ee']

>>> ' aabb '.strip() #移除字符串两侧的指定字符串,默认移除空格,需要注意的是可以指定多个字符
'aabb'
>>> ' aabb'.strip('b')
' aa'
>>> ' aabb'.strip('ab')
' '
>>> 'beaacebb'.rstrip('eb') #与strip一样,从右侧删除指定字符,可以为多个
'beaac'

>>> 'aa\nbb\ncc\ndd'.splitlines() #按换行符切割显示,如没指定keepends=True则将换行符移除。
['aa', 'bb', 'cc', 'dd']
>>> 'aa\nbb\ncc\ndd'.splitlines(keepends=True)
['aa\n', 'bb\n', 'cc\n', 'dd']

>>> 'aabbc'.startswith('a') #判断字符串是否以某个字符开头,可以是多字符
True
>>> 'aabbc'.startswith('b')
False
>>> 'aabbc'.startswith('aab')
True

>>> 'aaBBcc'.swapcase() #转换大小写
'AAbbCC'

>>> 'wend is ok'.title() #标题格式,首字母大写,其它字符小写
'Wend Is Ok'

>>> 'wend is ok'.upper() #将字符全部转换成大写
'WEND IS OK'

>>> 'wend is ok'.zfill(20) #这里的z指zero,用0将字符填充到指定长度
'0000000000wend is ok'

以上这篇python之Character string(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实时分析日志的一个小脚本分享
May 07 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
python判断完全平方数的方法
Nov 13 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
基于python实现破解滑动验证码过程解析
May 28 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
python爬虫中的url下载器用法详解
Nov 30 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
python利用正则表达式搜索单词示例代码
Sep 24 #Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 #Python
Django如何实现内容缓存示例详解
Sep 24 #Python
Django查询数据库的性能优化示例代码
Sep 24 #Python
python学习教程之使用py2exe打包
Sep 24 #Python
python数据结构之列表和元组的详解
Sep 23 #Python
Python字符串和字典相关操作的实例详解
Sep 23 #Python
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
默默简单的写了一个模板引擎
2007/01/02 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
Python实现的批量下载RFC文档
2015/03/10 Python
python保存字符串到文件的方法
2015/07/01 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
python中if及if-else如何使用
2020/06/02 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
教师绩效考核方案
2014/01/21 职场文书
公益活动邀请函
2014/02/05 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
领导班子四风表现材料
2014/08/23 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
主持人开幕词
2015/01/29 职场文书
校运会宣传稿大全
2015/07/23 职场文书
导游词之天津盘山
2019/11/01 职场文书