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>>> print('aaaa\nbbb',end='')  #取消末尾默认换行符,只需要配置end=''就行了aaaabbb>>> 

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  用十六进制数格式化变量的地址

格式化操作符辅助指令:

* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零('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 rangeIn [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的字符串方法

  1 >>> s = 'i mi to'     #将字符串的第一个字符改为大写
  2 >>> s.capitalize()
  3 'I mi to'
  4
  5 >>> s = 'I MI TO'  #将字符串所有字符改为小写
  6 >>> s.casefold()
  7 'i mi to'
  8
  9 >>> s.center(15)  #将字符串剧中,并用空格将字符串填充长度,如指定长度小于实际长度则没有效果
 10 '    I MI TO    '
 11
 12 >>> s = 'abcabcabcabc' #返回sub在字符串里出现的次数,start,end为可选参数,决定范围
 13 >>> s.count('a',0,12)
 14 4
 15 >>> s.encode(encoding='utf-8',errors='strict') #以encoding指定的编码格式对字符串进行编码
 16 b'abcabcabcabc'
 17 >>> s.endswith('abc',1,12)  #检查字符串是否以sub结尾,是返回True,否返回False,start,end为可选参数,决定范围
 18 True
 19
 20 >>> s = 'a\tb\tc'
 21 >>> s.expandtabs(4)   #把字符串的tab字符(\t)转化为空格,如不指定tabsize,默认为8个空格
 22 'a   b   c'
 23
 24 >>> s.find('b')  #检测字符串是否在字符串中,如在则返回索引,否则返回-1,可指定起始值。
 25 2
 26
 27 >>> s='hello python'
 28 >>> s.index('hello')   # 类似find(),不同在于如果sub不在字符串中,返回异常
 29 0
 30
 31 >>> s.isalnum()    #有空格返回false
 32 False
 33 >>> s='hellopython'
 34 >>> s.isalnum()   #如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则False
 35 True
 36 >>> s.isalpha()  #如果字符串至少有一个字符,并且所有字符都是字母则返回True,否则False
 37 True
 38
 39 >>> s = '123'
 40 >>> s.isdigit()  #如果字符串只包含数字则返回True,否则返回False
 41 True
 42
 43 >>> s = '123'
 44 >>> s.isdecimal()  #如果字符串只包含十进制数字则返回True,否则返回False
 45 True
 46 >>> s= 'ox123'
 47 >>> s.isdecimal()
 48 False
 49 >>> s = '0.33'
 50 >>> s.isdecimal()
 51 False
 52
 53 >>> s = 'abc'
 54 >>> s.islower()  #如果字符中至少包含一个能区分大小写的字符,并且这些字符都是小写则返回True,否则返回Flase
 55 True
 56 >>> s = 'Abc'
 57 >>> s.islower()
 58 False
 59
 60 >>> s = 'ABC'
 61 >>> s.isupper()  #果字符中至少包含一个能区分大小写的字符,并且这些字符都是大写则返回True,否则返回Flase
 62 True
 63 >>> s = 'ABc'
 64 >>> s.isupper()
 65 False
 66 >>>
 67
 68 >>> s = '123'
 69 >>> s.isnumeric()  #如果字符串只包含数字字符,则返回True,否则返回False
 70 True
 71 >>> s = '123a'
 72 >>> s.isnumeric()
 73 False
 74
 75 >>> 'def'.isidentifier()  #判断字符串是否包含该语言的保留字
 76 True
 77
 78 >>> 'aaa'.isprintable() #判断是否可以打印
 79 True
 80
 81 >>> ''.isspace()
 82 False
 83 >>> ' '.isspace()  #判断字符串中至少有一个字符且所有都是空格,否则返回false
 84 True
 85 >>> ' a'.isspace()
 86 False
 87
 88 >>> 'Abc'.istitle()  #判断是否是标题 格式,可以理解为首字母大写。
 89 True
 90 >>> 'aBC'.istitle()
 91 False
 92
 93 >>> s = '123'
 94 >>> '_'.join(s)  #返回一个用指定字符串分隔的字,或者是将指定字符加入到另一个字符中。
 95 '1_2_3'
 96 >>> s.join('abc')
 97 'a123b123c'
 98
 99 >>> s = 'ABC'
100 >>> s.lower()  #返回的是指定字符串的拷贝,并转化成小写
101 'abc'
102
103 >>> s.ljust(10,'+')  #可以指定宽度,以及填充字符串,返回的是按宽度,填充字符串格式化后的左对齐的字符串。
104 'ABC+++++++'
105
106 >>> 'aaabccc'.partition('b')  #在字符串中查找指定的字符,如找到则返回字符前部分,字符本身和后部分,如没找到则返回字符串和两个空字符串。
107 ('aaa', 'b', 'ccc')
108 >>> 'aaabccc'.partition('e')
109 ('aaabccc', '', '')
110
111 >>> 'aaabccc'.rpartition('b')  #与partition一样,但是是从右边开始
112 ('aaa', 'b', 'ccc')
113 >>> 'aaabccc'.rpartition('c')
114 ('aaabcc', 'c', '')
115
116
117 >>> 'aaaaabbcc'.replace('a','A')  #用指定字符串替换指定字符串,如果不指定替换次数,则替换所有
118 'AAAAAbbcc'
119 >>> 'aaaaabbcc'.replace('a','A',2)
120 'AAaaabbcc'
121
122 >>> 'aabbcc'.rfind('a')  #返回指定子串的最高索引,如果没找到则返回-1,可以指定要开始替换的起始,结束位置。
123 1
124 >>> 'aabbcc'.rfind('e')
125 -1
126 >>> 'aabbcc'.rindex('a')  #与上面的rfind一样,只是如果没找到不是返回-1,而是触发错误
127 1
128 >>> 'aabbcc'.rindex('e')
129 Traceback (most recent call last):
130   File "<stdin>", line 1, in <module>
131 ValueError: substring not found
132
133 >>> 'aa'.rjust(10,'+')  #与ljust()相对应,右对齐
134 '++++++++aa'
135 >>> 'aa'.ljust(10,'+')
136 'aa++++++++'
137
138 >>> 'aabccbddbee'.split('b')  ##按指定字符串对目标字符串进行切割,可以指定切割次数
139 ['aa', 'cc', 'dd', 'ee']
140 >>> 'aabccbddbee'.split('b',2)
141 ['aa', 'cc', 'ddbee']
142
143 >>> 'aabccbddbee'.rsplit('b',2) #与split作用相同,但是从右侧开始
144 ['aabcc', 'dd', 'ee']
145
146 >>> '  aabb  '.strip()  #移除字符串两侧的指定字符串,默认移除空格,需要注意的是可以指定多个字符
147 'aabb'
148 >>> '  aabb'.strip('b')
149 '  aa'
150 >>> '  aabb'.strip('ab')
151 '  '
152 >>> 'beaacebb'.rstrip('eb')  #与strip一样,从右侧删除指定字符,可以为多个
153 'beaac'
154
155 >>> 'aa\nbb\ncc\ndd'.splitlines()  #按换行符切割显示,如没指定keepends=True则将换行符移除。
156 ['aa', 'bb', 'cc', 'dd']
157 >>> 'aa\nbb\ncc\ndd'.splitlines(keepends=True)
158 ['aa\n', 'bb\n', 'cc\n', 'dd']
159
160 >>> 'aabbc'.startswith('a') #判断字符串是否以某个字符开头,可以是多字符
161 True
162 >>> 'aabbc'.startswith('b')
163 False
164 >>> 'aabbc'.startswith('aab')
165 True
166
167 >>> 'aaBBcc'.swapcase()  #转换大小写
168 'AAbbCC'
169
170 >>> 'wend is ok'.title()   #标题格式,首字母大写,其它字符小写
171 'Wend Is Ok'
172
173 >>> 'wend is ok'.upper()  #将字符全部转换成大写
174 'WEND IS OK'
175
176 >>> 'wend is ok'.zfill(20)  #这里的z指zero,用0将字符填充到指定长度
177 '0000000000wend is ok'

转载于:https://www.cnblogs.com/zhangxinqi/p/7589391.html

python之Character string相关推荐

  1. (105, b“Unclosed quotation mark after the character string ‘2020-07-01‘.DB-Lib error message 20018,

    使用python从sql server中读取数据时,报以下错误: (105, b"Unclosed quotation mark after the character string '20 ...

  2. Python Unicode和string

    Python Unicode和string那些事 本文转载自https://www.jianshu.com/p/4ced2bbc9334 开发过程中总是会碰到string,Unicode,ASCII, ...

  3. Error: ‘\R‘ is an unrecognized escape in character string starting “‘E:\R“

    Error: '\R' is an unrecognized escape in character string starting "'E:\R" 目录 Error: '\R' ...

  4. ORA-06502:PL/SQL :numberic or value error: character string buffer too small

    今天遇到一个错误提示:ORA-06502:PL/SQL :numberic or value error: character string buffer too small,一般对应的中文信息为:O ...

  5. mysql load character_mysql load data Invalid utf8mb4 character string: ”

    使用mysql的 load data 导入数据到 数据库中: LOAD DATA LOCAL INFILE '/tmp/2982/20200424/user.csv' INTO TABLE t_use ...

  6. Python bytes 和 string 相互转换 - Python零基础入门教程

    目录 一.Python bytes 和 string 区别 二.Python string 转 bytes 三. Python bytes 转 string 四.猜你喜欢 基础 Python 学习路线 ...

  7. Python bytearray/bytes/string区别 - Python零基础入门教程

    目录 一.字节与字符的区别 1.字节概念 2.字符概念 3.字符串概念 4.字节串概念 二.str / bytes / bytearray 区别 三.string 与 bytes / bytearra ...

  8. Python bytearray/bytes/string区别

    目录 一.字节与字符的区别 1.字节概念 2.字符概念 3.字符串概念 4.字节串概念 二.str / bytes / bytearray 区别 三.string 与 bytes / bytearra ...

  9. Python中字符串String去除出换行符(\n,\r)和空格的问题

    Python中字符串String去除出换行符和空格的问题(\n,\r) 在Python的编写过程中,获取到的字符串进场存在不明原因的换行和空格,如何整合成一个单句,成为问题. 方法: 一.去除空格 & ...

  10. [转载] Python中的string模块的学习

    参考链接: Python当中string.whitespace 学习资料:http://docs.python.org/library/string.html#string.Formatter 感觉学 ...

最新文章

  1. Centos6.5更换163源 epel源
  2. Python中对象是否可以迭代iterable
  3. forms oracle runtime_Oracle EBS R12 clone 完毕后,登陆到系统,在运行FORMS程序的时候出现FRM-92101...
  4. 软件缺陷的优先级和严重性定义
  5. Redis(2)---数据持久化
  6. Ajax拿取html格式数据
  7. 上周热点回顾(6.14-6.20)
  8. 检查列表中的所有元素在Python中是否相同
  9. 深入理解BodyTagSupport,包括SKIP_PAGE, EVAL_PAGE等
  10. theos linux环境,theos安装详解
  11. 超越Tiny-YOLO V4,全新设计轻量化YOLO模型实现边缘实时检测!!!
  12. 拓端tecdat|在Python中自然语言处理生成词云WordCloud
  13. PHP常用函数集合(可做桌面壁纸)
  14. python 基础代谢率计算_【Python 19】BMR计算器3.0(字符串分割与格式化输出)
  15. 剑侠世界手游服务器维护公告,剑侠世界手游公告_剑侠世界手游开服公告_更新公告_安趣网...
  16. 解读SPSS多元方差分析中的多因素多变量的相互影响
  17. Word serach(Medium)
  18. 浅谈无线测温在35kV高压开关柜中的应用
  19. Oasis Sapphire黑客松来袭 | 构建隐私DApp,赢取9000美元奖励!
  20. ElasticSearch License 过期解决办法

热门文章

  1. 添加key_所写为方便日后查阅(添加SSHkey)
  2. mac下nginx安装及与tomcat简单配置
  3. Spring Boot REST 请求(GetMapping,PostMapping)、格式化日期参数、压缩响应内容
  4. HTTP 缓存机制及原理
  5. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_11-freemarker静态化测试-基于模板字符串静态化...
  6. 如何使用Transact-SQL进行事务处理[示例]
  7. Java查看class的JVM,指令集文件--javap -c ClassName
  8. 20145202马超《java》实验5
  9. CENTOS 使用 MUTT发送邮件
  10. [BZOJ4523]路由表