python基础——字符串(str)

标准序列的常规操作(索引、切片、乘法、成员资格检查、长度等)适用于字符串,但字符串是不可变的数据类型,因此元素赋值和切片赋值是非法的。

这里介绍字符串两个方面:字符串格式设置    字符串方法

1、设置字符串格式(format):基础版

使用字符串格式设置运算符----%,并在%右边指定格式的值。指定要设置其格式的值时,可使用单个值(如字符串,数字等)
,亦可使用元组(设置多个值)或者字典。

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

>>> format = ‘hello, %s and %s !‘    # %s称为转换说明符,指出值要插入的位置,s指的将值视为字符串进行格式设置
>>> name = (‘zhao‘, ‘kong‘)
>>> format % name
‘hello, zhao and kong !‘

另一种解决方案‘format’

(1)替换字段没有名称或将索引用作名称

>>> ‘{}, {}, {}‘.format(‘first‘, ‘second‘, ‘third‘)
‘first, second, third‘
>>> ‘{2}, {1}, {0}‘.format(‘first‘, ‘second‘, ‘third‘)
‘third, second, first‘

(2)命名字段

>>> from math import pi
>>> ‘{name} is approximately {value:.3f}‘.format(name = ‘pi‘,value = pi)

# 使用格式说明符‘.3f‘,并使用冒号将其与字段隔开,意味着要使用包含3位小数的浮点数格式
‘pi is approximately 3.142‘

2、 设置字符串的格式:完整版

格式字符串中,替换字段由如下部分组成,其中每部分都是可选的。

  • 字段名:索引或标识符,指出要设置哪个值的格式并使用结果来替换该字段。除指定值外,还可以指定值的特定部分,如列表的元素
  • 转换标志:跟在叹号后面的单个字符。当前支持的字符包括r(repr)、s(str)、a(ascii)。如果你指定了转换标志,将不使用对象本身的格式设置机制,而是使用指定的函数将对象转换成字符串,在做进一步的格式设置。
  • 格式说明符:跟在冒号后面的表达式,格式说明符让我们能够详细的指定最终格式,包括格式类型(如字符串、整数、浮点数等),字段的宽度和数字的精度,如何显示符号和千分位分隔符,以及各种对齐和填充方式

2.1替换字段名

按顺序和参数配对

>>> ‘{first} {} {third} {}‘.format(2,4,first=1,third=3)  # 位置参数在前,按顺序指定给未命名字段,然后按命名参数指定命名字段
‘1 2 3 4‘
也可使用索引值和命名参数指定

>>> ‘{first} {1} {third} {0}‘.format(2,4,first=1,third=3)
‘1 4 3 2‘
不能同时使用手工编号和自动编号

>>> ‘{first} {1} {third} {}‘.format(2,4,first=1,third=3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot switch from manual field specification to automatic field numbering

2.2 基本转换

指定在字段中包含的值以后就可以设置其格式的指令了。

>>> ‘the number is {num:f}‘.format(num=100)
‘the number is 100.000000‘

>>> ‘the number is {num:b}‘.format(num=100)
‘the number is 1100100‘

2.3宽度、精度和千分位

在格式说明中指定宽度和精度

宽度是使用整数指定的如下所示:

>>> ‘{num:10}‘.format(num=1)
‘         1‘
>>> ‘{name:10}‘.format(name=‘zhao‘)
‘zhao      ‘
精度也是由整数指定,但需要在之前加上一个表示小数点的句点

>>> ‘{π:10.5f}‘.format(π=pi)
‘   3.14159‘
使用逗号指出需要添加的千位分隔符

>>> ‘{:,}‘.format(1000000)
‘1,000,000‘

2.4符号、对齐、填充

填充

用0填充

>>> ‘{0:0^15}‘.format(‘zhao‘)
‘00000zhao000000‘

其他符号填充
>>> ‘{:*^10}‘.format(‘zhao‘)
‘***zhao***‘

对齐

可以使用 <、>和^,指定左对齐、右对齐、居中

>>> print(‘{:<10}\n{:^10}\n{:>10}‘.format(‘zhao‘,‘qian‘,‘sun‘))
zhao      
   qian   
       sun

3.4 字符串常用方法

center()== 》S.center(width[, fillchar]) -> str

方法center通过在两边添加填充字符(默认空格)让字符串居中

>>> ‘zhao‘.center(10, ‘*‘) 
‘***zhao***‘

>>> ‘zhao‘.center(10)
‘   zhao   ‘

find()  == 》S.find(sub[, start[, end]]) -> int

方法find()在字符串中查找子串,如果找到就返回子串第一个字符的索引,否则返回 -1

>>> ‘zhao‘.find(‘a‘)
2
>>> ‘zhao‘.find(‘ao‘)
2

还可指定搜索的起点和终点

>>> ‘zhaoqianzhao‘.find(‘zhao‘,1)
8
>>> ‘zhaoqian‘.find(‘a‘,3,8)  #包含起点不包含终点
6

john() ==》 S.join(iterable) -> str

John方法是非常重要的字符串方法,其作用与split()相反,用于合并序列的元素

>>> l1 = [‘zhao‘,‘qian‘,‘sun‘]
>>> ‘.‘ . join(l1)
‘zhao.qian.sun‘

lower() == 》S.lower() -> str

返回字符串的小写版本

>>> ‘ZHAO‘.lower()
‘zhao‘

replace() == 》 S.replace(old, new[, count]) -> str

>>> ‘zhao‘.replace(‘zhao‘,‘qian‘)
‘qian‘

>>> ‘zhaozhaozhao‘.replace(‘zhao‘,‘qian‘,2)
‘qianqianzhao‘

split() == 》S.split(sep=None, maxsplit=-1) -> list of strings

split()方法与Join()方法相反,用于将字符串转换序列

>>> ‘z h a o‘.split()
[‘z‘, ‘h‘, ‘a‘, ‘o‘]
>>> ‘z!h!a!o‘.split(‘!‘)
[‘z‘, ‘h‘, ‘a‘, ‘o‘]

strip() == 》S.strip([chars]) -> str

strip()方法将字符串开头和结尾的空白删除,并返回删除后的结果

>>> ‘zhao   ‘.strip()
‘zhao‘

translate() == 》S.translate(table) -> str

translate()与replace ()一样替换字符串的特定部分,但不同的是它只能进行含有单字符替换,优势在于可以同时替换多个字符,因此比replace()效率高

使用translate()需要先创建一个转换表,可对字符串调用maketrans,这个方法接受两个参数:两个相同长度的字符串,指定要将第一个字符串中的每个字符都替换为第二个字符串中相应字符

>>> table = str.maketrans(‘cs‘,‘kz‘)
>>> table
{99: 107, 115: 122}
>>> ‘this is cool‘.translate(table)
‘thiz iz kool‘
调用maketrans()方法时,还可以提供第三个可选参数,指定要将那些字母删除

>>> table = str.maketrans(‘cs‘,‘kz‘,‘o‘)
>>> ‘this is cool‘.translate(table)
‘thiz iz kl‘

判断字符串是否满足特定条件

很多字符串方法以is开头,他们判断字符串是否具有特定性质,这些方法返回False 或 True

原文地址:https://www.cnblogs.com/zhao1126/p/9501218.html

时间: 2024-11-06 08:42:38

python基础——字符串(str)的相关文章

[1][python基础]字符串和编码[2]

[1][python基础]字符串和编码[2] 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255)如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295.

Python基础-字符串格式化_百分号方式_format方式

Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号

python基础-字符串

一:字符串做为有序数据类型,有以下操作方法: 1:下标(索引) 2:切片(包括切割) 3:常见内建函数. 1)索引:一种下标是从0开始.区间:,0=<index<len(str),从左右到读取. 一种是从-1开始.区间是 len(str)=< index=<-1,从右到左读取. a='come' print(a[0]) print(a[3]) print(a[-1]) print(a[-4]) 如果索引值超出字符串的索引会抛出:IndexError. 2)切片:是字符串的分割获取一

python基础—字符串

字符串 str ###################################################### # 1 首字母大写 # test = "aLex" # v = test.capitalize() # print(v) # 2 所有变小写,casefold更牛逼,很多未知的对相应变小写 # v1 = test.casefold() # print(v1) # v2 = test.lower() # print(v2) # 3 设置宽度,并将内容居中 # 20

python中字符串(str)的常用处理方法

str='Python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str)) 一.字母处理全部大写:str.upper()全部小写:str.lower()大小写互换:str.swapcase()首字母大写,其余小写:str.capitalize()首字母大写:str.title()print '%s lower=%s' % (str,

Python 全栈开发二 python基础 字符串 字典 集合

一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. 1 >>ch = "wallace" 2 >>ch1 = 'wallace' 3 >>ch2 = ''' 4 wallace 5 wallace 6 wallace 7 ''' 8 #以上三种引号都可以定义一字符串, 9 #三引号定义的字符串可以换行 注意:字符串是不可变的数据类型,关于可变与不可变将会在后文解释. 2,转义字符 在python中有一些字符是

python基础学习 str,list,dict,set,range,enumerate

一.字符串 s = 'python' s1 = 'python' + 'learn' #相加其实就是简单拼接 s2 = 'python' * 5 #相乘其实就是复制自己多少次,再拼接在一起 字符串切片: a= 'abcdefg' print(a[0]) # 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推. print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长 print(a[5:0:-2]) #反向

练习:python基础+字符串

1.执行python的两种方式 2.简述位.字节的关系 3.简述ascill.unicode.utf-8.gbk的关系 4.请写出‘张三’分别用utf-8和gbk编码所占的位数 5.python单行注释和多行注释分别用什么 6.声明变量注意事项有哪些 7.请使用int提供的方法表示n = 5变量最少可以用多少个二进制位表示 8.布尔值分别有什么 9.请写出执行结果 a = 'alex' b = a.capitalize() print(a) print(b) 10.请实现下述功能 name =

Python基础(str类)

二.字符串(str类) 提示:以下所有方法都是类中的方法,第一个参数都是self,统一都没有写出. 包含的方法有: 1.capitalize()     #首字母变大写 >>> name='hello world' >>> name.capitalize() 'Hello world' 2.center(width, fillchar=None)#内容居中,width:总长度:fillchar:空白处填充内容,默认无 >>> name='hello w