当前位置:Gxlcms > Python > 实例详解python之Characterstring

实例详解python之Characterstring

时间:2021-07-01 10:21:17 帮助过:46人阅读

下面小编就为大家带来一篇python之Character string(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1、python字符串

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

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


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

2、python转义字符

\  :在行尾时,为续行符

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

\'  :单引号转义

\"  :双引号转义

\b  :退格(backspace)

\n  :换行

\v  :纵向制表符

\t  :横向制表符

\r  :回车

\f  :换页

3、python字符串运算符

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


  1. >>> var1 = 'hello'
  2. >>> var2 = 'python'
  3. >>> print(var1+var2) #拼接字符串
  4. hellopython
  5. >>> 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用十六进制数格式化变量的地址

格式化操作符辅助指令:

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


  1. >>> 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开,传入位置参数列表可用*列表


  1. In [27]: '{}+{}={}'.format(1,2,3) #格式化按顺序应用参数值
  2. Out[27]: '1+2=3'
  3. In [28]: '{2}-{1}={0}'.format(1,2,3) #指定顺序应用参数值
  4. Out[28]: '3-2=1'
  5. In [29]: '{0}+{0}={1}'.format(2,3) #指定参数可以重复使用
  6. Out[29]: '2+2=3'
  7. In [30]: '{}+{}={}'.format(2,3) #如不指定顺序,format参数不够就会报错
  8. ---------------------------------------------------------------------------
  9. IndexError Traceback (most recent call last)
  10. <ipython-input-30-29f40e412920> in <module>()
  11. ----> 1 '{}+{}={}'.format(2,3)
  12. IndexError: tuple index out of range
  13. In [31]: l1 = [2,4,8]
  14. In [32]: '{}*{}={}'.format(*l1) #使用列表引用参数值
  15. Out[32]: '2*4=8'
  16. In [33]: dct = {'name':'python','age':20} #定义字典
  17. In [35]: 'welcom to {name},age is {age}'.format(name='qi',age=28) #变量引用
  18. Out[35]: 'welcom to qi,age is 28'
  19. In [36]: 'welcom to {name},age is {age}'.format(**dct) #使用**引用字典参数必须填写key值
  20. Out[36]: 'welcom to python,age is 20'
  21. 填充与格式化:
  22. In [53]: "{0: >20}".format("string") #从0位开始已空格填充20宽度左对齐
  23. Out[53]: ' string'
  24. In [54]: "{0:&>20}".format("string")
  25. Out[54]: '&&&&&&&&&&&&&&string'
  26. In [55]: "{0:#>20}".format("string") #使用#号会有个小bug
  27. ....:
  28. Out[55]: '##############string'
  29. In [60]: '{0:+<20}'.format("string") #向右对齐填充+
  30. Out[60]: 'string++++++++++++++'
  31. In [61]: '{0:+^20}'.format("string") #剧中对齐填充+
  32. Out[61]: '+++++++string+++++++'
  33. 精度与进制:
  34. >>> '{0:.3f}'.format(10/3) #小数位进度格式化
  35. '3.333'
  36. >>> '{0:b}'.format(8) #格式化二进制
  37. '1000'
  38. >>> '{0:o}'.format(9) #格式化八进制
  39. '11'
  40. >>> '{0:x}'.format(26) #格式化十六进制
  41. '1a'
  42. >>> '{0:,}'.format(123456789) #千分位格式化
  43. '123,456,789'
  44. 使用索引:
  45. >>> l2 = ['AA',{'bb':'cc'},('d','e')] #列表索引引用
  46. >>> 'outing:{0[0]}'.format(l2)
  47. 'outing:AA'
  48. >>> 'outing:{0[0]},{0[1]}'.format(l2) #将列表当成一个元素,在其中索引值
  49. "outing:AA,{'bb': 'cc'}"

5、python的字符串方法


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

以上就是实例详解python之Character string的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行