Python(菜鸟入门)2

版权声明:创作不易,转载注明 https://blog.csdn.net/qq_43742687/article/details/88771331

2.4字符串
1.字符串的类型:
创建:>>>i=’hello’
>>>j=”hello”
>>>k=’’’I’m a good man!’’’
>>>l=str(‘hello’)
>>>print(i,j,k,l)
hello hello I’m a good man! hello
三个单引号中的内容都会被保留。单引号和双引号中格式需转义。
转义字符 描述 转义字符 描述
\(在行尾) 续行符 \n 换行
\ 反斜杠符 \v 纵向制表
\’ 单引号 \t 横向制表
\” 双引号 \r 回车
\a ASCII蜂鸣 \f 换页
\b 退格 \uhhh 给定16位十六进制值的Unicode字符
\N{name} 给定名称的Unicode字符 \uhhhhhhhh 给定32位十六进制值的Unicode字符
\ooo 给定八进制字符 \xhh 给定8位十六进制值的Unicode字符
2.字符串的比较:
字符串支持通常的比较操作符<,<=,,!=,>,>=,这些操作符在内存中逐个字节对字符串进行比较。
单字符字符串的比较:
比较两个字符串是否相同时,使用“
“运算符,如果两个字符相同返回真,否则返回假。进行比较时,Python使用的是字符串的内存字节表示,此时的排序是基于Unicode字元的,函数ord(‘字符‘)返回字符的ASCII值和chr(整数)返回对应字符。两个单字符间的比较会转换成对应ACSCII值的比较。
多字符字符串的比较‘:
并行地检查两字符串中同一位置的字符,然后向前推进,直到找到不同的字符为止。
例如:>>>’ab’<’abc’
Ture
>>>’abc’<’abd’
Ture
3.字符串的方法:
find()方法:查找子字符串,若找到返回从0开始的下标值,若找不到返-1。
格式:s. find(sub[,start][,end])#[ ]中的内容可省略。

‘apple, peach, banana, peach, pear’
s.find(‘peach’)
6

s.find(‘peach’,7)
19

s.find('peach’, 7, 20)
-1

2.字符串的分离split()
splite()就是将一个字符串分裂成多个字符串组成的列表。当不带参数时以
空格进行分割,当带有参数时,以该参数进行分割。
例如

s=‘apple, peach, banana, pear’
li=s.splite(‘;’)
li
[‘applet’,‘peach’,'banana’,’pear’]

3.字符串连接join()
join()返回一个可迭代对象连接成的字符串。

li=[‘apple, peach, banana, pear’]
sep=’;’
s=sep.join(li)
apple, peach, banana, pear

4.查找替换 replace()
replace(法把字符串中的od(旧字符串)替换成new(新字符串).如果指定第
max,则替换不超过max次。
例如

s=’苹果’,’苹果’
print(s)
苹果,苹果

s2=s.replace(‘苹果’,香蕉’)
print (s2)
香蕉,香蕉

s3=s.replace(‘苹果’,香蕉’,1)
print (s3)
香蕉,苹果

5.删除两端空格strip()
strip()方法去除原字符串的空格(默认情况下)或指定符号,返回新字符串的一个副本。
例如:

s=’ abc ‘
s2=s.strip()
s2
‘abc’

s.capitalize0
返回字符串s的副本,并将首字符变为大写
s.center(width,char)
返回s中间部分的一个子字符串。长度为 width,并使用空格或可选的 char(长度为1的字符
串)进行补充
s.count(t,start, end)
返回字符串s中(或在s的start:end分片中)子字符串t出现的次数
s.encode(encoding,err)
返回一个 bytes 对 象, 该对象使用默认的编码格式或指定的编码格式来表示该字符串,并根据可选的err参数处理错误
s.expandtabs(size)
返回s的一个副本,其中的制表符使用8个或指定数量的空格替换
s.find(t,start,end)
返回t在s中(或在s的start:end 分片中)的最左位置,如果没有找到,就返回-1;使用str.rfind0
则可以发现相应的最右边位置
s.format(…)
返回按照给定参数进行格式化后的字符串副本
s.index(t,start,end)
返回t在s中的最左边位置(或在s的start:end 分片中),如果没有找到,就产生 ValueError
异常.使用s.rindex0可以从右边开始搜索
s.isalnum0
如果s非空,并且其中的每个字符都是字母和数字的,就返回True:
s.isalpha0
如果s非空,并且其中的每个字符都是字母的,就返回True
s.isdecimal0
如果s非空,并且其中的每个字符都是Unicode的基数为10的数字,就返回True
s.isdigit0
如果s非空,并且其中的每个字符都是一个ASCII数字,就返回True
s.isidentifier0
如果s非空,并且是一个有效的标识符,就返回True
s.islower()
如果s中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,
则返回 True, 否则返回 False
s.isprintable0)
如果s非空,并且其中的每个字符被认为是可打印的,包括空格,但不包括换行,则返回True
s.isspace0
如果s非空,并且其中的每个字符都是空白字符,则返回True
s.istitle0
如果s是一个非空的首字母大写的字符串,则返回True
s.isupper0
如果s中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,
则返回 True,否则返回 False
s.join(seq)
返回序列 seq 中每个项连接起来后的结果,并以s在两项之间分隔
s.ljust(width,char)
返回长度为 width 的字符串中左对齐的字符串 s的一个副本, 使用 s.rjust0可以右对齐,
s.center()可以中间对齐
s.lower()
将s中的字符变为小写
s.maketrans()
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表
示需要转换的字符,第二个参数也是字符串表示转换的目标
返回包含3个字符串的元组;字符串s在t的最左边之前的部分、t,字符串s在t之后的部:
s.partition(t)
返回包含3个字符的元组;字符串s在t的最左边之前的部分,t,字符串s在t之后的部分。如果t不在s内,则返回s与两个空字符串。
s.replace(t,u,n)
返回s的一个副本,其中每个(或最多n个)字符串t用u替换
s.split(t,n)
返回一个字符串列表,要求在字符串t处至多分割n次,如果没有给定n,就分割尽可能
次,如果t没有给定,就在空白处分割.
s.splitlines(f)
返回在行终结符处进行分割产生的行列表,并剥离行终结符
s.startswith(x,start,end)
如果s(或s的start:end分片)以字符串x开始(或以元组x中的任意字符串开始),就返回
True, 否则返回 False.
s.strip(chars)
返回s的一个副本,并将开始处与结尾处的空白字符移除
s.swapcase
返回s的副本,并将其中大写字母变为小写,小写字母变为大写
s.title0
返回s的副本,并将每个单词的首字母变为大写,其他字母变为小写。
s.translate
与 s.maketrans0)类似。
s.upper0
返回s的大写化版本。
s.zfill(w)
返回s的副本,如果比w短,就在开始处添加0,使其长度为w。

4.字符串格式化:
与C语言类似。使用字符串格式化操作符%来实现。
格式化命名的一般结构:%[name][flags][width].[precision] typecode
name:命名
flags:‘+’右对齐、‘-’左对齐、‘ ’表示在正数前加一个空格或‘0‘使用零填充。
width:显示宽度
precision:表示小数点后精度。
常用格式化命令
%s 字符串
%d 整数
%f 浮点小数
%e 浮点指数
转换说明符可以包括字段宽度和精度。.字段宽度是转换后的值所保留的最小字符个数,精度则是结果中应该包含的小数位数,或者是转换后的值所能包含的最大字符个数。指定的是显示字段的宽度, 以数据占据的空格数来计算。 如果指定了一个负值,数据在指示的宽度内左对齐; 否则, 默认情况下在指定的宽度内右对齐。
#(宽度分别为10和5,名字右对齐,数字左对齐)

print(’%10s is %-5d years old’%(‘Jack’,25))
Jack is 25 years old
#(宽度为10,右对齐)

import math
print(math.pi)
3.141592653583

从Python2.6开始,新增了一种格式化字符串的函数 str.format(),str.format()方法提供了非常灵活而强大的创建字符串的途径, 新的字符串对象的 format 方法使用主体字符串作为模板, 并且接受任意多个替换值的参数。
每个替换字段由包含在花括号中的字段名标识,如果字段名是简单的整数,就被作为传递给str.format0方法的一个参数的索引位置。因此,名字为0的字段被第一个参数替代,名为1的字段则被第二个参数所替代。 字符串的 format 函数可以接受无限个参数, 位置可以不按顺序。
(1)通过位置匹配参数

‘{0},{1)’.format(‘a’,‘b’)
‘a,b’

‘(1},{0)’.format(‘a’,‘b’)
L’enog’,‘ebegojon’,1 qig’Jdlacge
‘b,a’

“The book’{0}’ was published in{1}”.format(‘Python’,1990)
"The book 'Python’was published in1990“

(2)通过名称匹配参数

‘{color},{0}and{food}’.format(2,color’red’,food=‘egg’)
‘red,2 and egg’

(3)通过下标匹配参数

coord=(2,3)
‘x:{0[0]},y:{0[1]}’.format(coord)
‘x:2,y:3’

(4)指定进制

“int:{0:d};hex:{0:x};oct:{0:o};bin:{0:b)”.format(42)
‘int:42;hex:2a;oct:52;bin:101010’

“int:(0:d};hex:{0:#x);oct:(0:#o);bin:{0:#b)”.format(42)
‘int: 42; hex: Ox2a; oct: 0o52; bin: 0b101010’

如果我们试图连接字符串与数字,那么Python 将产生 TypeError异常, 但是使用 str.format方法可以很容易地做到这一点。

“{0},{1)”.format(“the amount due is$”,100)
‘the amount due is s,100’

也可以使用其来连接字符串。(但str.join()更适合这个目的)

s=’{0},{1},{2}’
x=”two”
s=s.format(“one”,x,”three”)
s
‘one,two,three’

猜你喜欢

转载自blog.csdn.net/qq_43742687/article/details/88771331