金沙澳门官网:python学习笔记2,Python字符串详细

作者: 网络编程  发布:2019-12-07

string.partition(str)

find split,从str出现第一个位置,截断为pre_str,str,after_str元组,不含str则pre_str=strstring.replace(str1,str2,num=string.count(str1))替换,指定不超过num次,可作为模板实现

string.rfind(str,beg=0,end=len(string))
同find,右边开始

string.rindex(str,beg=0,end=len(string))
同index,右边开始

string.rjust(width)
右对齐,空格补齐

string.rpartition(str)
同partition,右边开始

string.rstrip([chars])
清理右侧空白,包括换行符,返回处理后字符串

string.split(str=””, maxsplit =string.count(str))
以str切片,可指定分割次数, 分割字符串,返回列表,默认分隔符空格

string.splitlines(num=string.count(‘n'))
s.splitlines([keepends])按行分隔,可指定分割次数

string.startswith(obj,beg=0,end=len(string))
以str开头,True. 检测字符串是否以某一子串开头

string.strip([obj])
在string上执行lstrip和rstrip

string.swapcase
反转string中大小写. 字符串中小写转大写,大写转小写

string.title()
标题花,单词首字母大写,其余小写

string.translate(str,del=””)
s.translate(table)根据str给出表转换string字符,要过滤的字符放在del参数中

string.upper()
转大写. 将字符串全部转为大写

string.zfill(width)
返回长度width的字符串,原字符串右对齐,前面填充0

len(string)
获取字符串的长度

最佳实践

1.循环中用到长度
复制代码 代码如下:
while i < len(stri):
#修改
size = len(stri)
while i < size

2.字符串追加
复制代码 代码如下:
l = ['a', 'b']
result = ''
for i in l:
    result = i
#修改
result = ''.join(l)

其他
1.转义符

几个常用:

n换行,\反斜杠
t制表  '单引号
r回车 "双引号

后续需扩展

字符串编码详解
字符串格式化
正则表达式
字符串涉及常用模块(序列化/文本包装等)

简介 字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变 通常由单引号...

再次重申学习的是某位THU大神,网址贴下

Python字符串详细介绍,python字符串

简介

字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变

通常由单引号(' ),双引号(" ),三引号(''' """)包围

其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释

Python实际三类字符串:

1.通常意义字符串(str)
2.原始字符串,以大写R 或 小写r开始,r'',不对特殊字符进行转义
3.Unicode字符串,u'' basestring子类
在 Python 中,字符串是“不可改变的序列”

1.不可变

2.满足序列基本操作,按位置存取,切片及索引
字符串
1.获得帮助:
复制代码 代码如下:
>>> help(str)
>>> dir(str)
>>> help(str.replace)

2.不可变性

在创建之后就不能就地改变(同java),不能通过对其某一位置进行赋值而改变字符划分为不可变序列,这些字符串所包含的字符存在从左到右的顺序,不可在原处修改。python中字符串相当于一个不可变序列的列表,一旦声明,每个字符位置固定

意味着若想改变,必须新建一个!
复制代码 代码如下:
>>>s='spam'
>>>s[0]='k'   #TypeError
#修改字符串类似java,重新赋值
s = ‘k' s[1:]

原始字符串

原始字符串常量,r”abcd”,(r/R)即去掉了反斜线转义机制。关闭转义机制,即不再表示转义

用处:

1.正则表达式

用于处理正则表达式,减少反斜杠
复制代码 代码如下:
p4search = re.compile(r's*')

2.系统路径

可以方便地表示系统路径
复制代码 代码如下:
path = r'e:book'

unicode字符串

Unicode是书写国际文本的标准方法。

Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如,u"This is a Unicode string."

BP: 在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。

常用操作

1.基本操作
复制代码 代码如下:
   :string1 string2    #联接字符串,将后一个串链接到前一个串的后面
    Python不允许在 表达式中出现其他类型,需要手工转【这点不同于java】‘abc' str(9)
*   :string*n           #创建一个新字符串重复n次原来的串
[]  :string[n]          #从字符串中获取对应位置的一个字符
[:] :string[n:m]        #截取字符串,如果为:m从头到m如果为n:从n到尾
in  :char in string #判断一个字符是否在串中,如果在返回为真(True)
not in :char not in string #判断一个字符是否不在串中,如果在返回为真(True)
r/R : r/Rstring     #禁止转义字符的实际意义,整个字符为原始意义
len() : 长度len(s)

2.类型转换

字符串和数字相互转换

字符串到数字int/float/long

数字到字符串str
复制代码 代码如下:
>>> int(42)
42
>>> int('42')
42
>>> str(42)
'42'
>>> float('42.0')
42.0
>>> str(42.0)
'42.0'

或者使用string模块的函数

s:进行转换的字符串, base:可选,目标进制
复制代码 代码如下:
import string
string.atoi(s[,base])   #base默认为10,如果为0,那么s就可以是012或0x23这种形式的字符串,如果是16那么s就只能是0x23或0X12这种形式的字符串
   

string.atol(s[,base])       #转成long

string.atof(s[,base])       #转成float

字符串和列表的转换
字符串转列表:
复制代码 代码如下:
s='spam'
l = list(s)

l2 = "hello world".spilt()

列表转字符串
复制代码 代码如下:
k = ‘'.join(l)

注意,不能join列表中的非字符串

3.修改字符串
复制代码 代码如下:
s =  s 'a'
s = s[3:] ‘b'
s = s.replace(‘pl','pa')

a = '' #赋值空

del a  #整个变量删除

4.索引和分片

索引s[i]
复制代码 代码如下:
s[0]首个

s[-1] = s[len(s)-1] 倒数第一个

分片s[i:j]
复制代码 代码如下:
不含上边界,s[1:3] 取[1-2]
s[1:]取1到结束   s[:3] 取开始到2
s[:-1]开始到倒数第二个
s[:]开始到结尾,相当于一个复制
s[1:10:2]  取1-9,步长=2
s[a:b:-2] 步长为负数,两个边界意义反转了,表示从b 1到a,步长-2
s='abcdefg'  
s[5:1:-1] 得到 fedc
s[1:3] == s[slice(1,3)]  内置函数

字符串格式化

这里只介绍基本字符串格式化,扩展在后续篇幅介绍%c 单个字符%d 十进制整数%o 八进制整数%s 字符串%x 十六进制整数,其中字母小写%X 十六进制整数,其中字母大写
复制代码 代码如下:
>>> str = "so %s a day!"
>>> str % 'beautiful'
'so beautiful a day!'

>>> '{0} is {1}'.format('a','b')
'a is b'

>>> template = "{0}, {1} and {2}"
>>> template.format('a', 'b', 'c')
'a, b and c'

内建函数列表
【字符串方法是python文本处理头号工具】

string.capitalize()
字符串第一个字符大写

string.center(width,[,fill])
原字符居中,空格填充至width长度

string.count(str,beg=0,end=len(string))
获得字符串中某一个子串的数目,计算出现次数,可指定范围

string.decode(encoding='UTF-8',errors='strict')
解码字符串,出错默认报ValueError,除非errors是ignore或replace

string.encode(encoding='UTF-8',errors='strict')
string.endswith(suffix,beg=0,end=len(string))
是否以**结尾

string.expandtabs(tabsize=8)
把字符串中tab转为空格,默认8个

string.find(str,beg=0,end=len(stirng))
检测是否包含str,存在返回开始索引,否则返回-1

string.index(str,begin=0,end=len(string))
同find,不存在报异常,ValueError

string.isalnum()
至少一个字符,且所有字符均为字母或数字,True. 检测字符串是否只包含0-9A-Za-z

string.isalpha()
至少一个字符,所有字符都是字母,True. 检测字符串是否只包含字母

string.isdecimal()
只包含十进制数,True

stirng.isdigit()
只包含数字,True. 检测字符串是否仅包含数字

string.islower()
至少一个区分大小写字符且所有字符小写,True. 检测字符串是否均为小写字母

string.isnumeric()
只含数字字符,True

string.isspace()
只包含空格,True. 检测字符串是否均为空白字符

string.istitle()
标题化字符,True. 检测字符串中的单词是否为首字母大写

string.isupper()
至少一个区分大小写字符且所有字符大写,True. 检测字符串是否均为大写字母

string.join(seq)
以string作为分隔符,seq中所有元素合并为新的字符串. 将原字符串插入参数字符串中的每两个字符之间

string.ljust(width)
返回一个原字符串左对齐,空格补充至长度width

string.lower()
转小写. 将字符串全部转为小写

string.lstrip()
截掉左侧的空格

- ()

如下

a = ("hello, world. "
    "it's a nice day. "
    "my name is basasuya")
a = "hello, world. " 
    "it's a nice day. " 
    "my name is basasuya"

可以将整数按照不同进制转化为不同类型的字符串

hex(255)
oct(255)
# 八进制
bin(255)
int('23')
float('23')
int('FF', 16)
# 指定原本是什么进制

Python 格式化字符串

'{} {} {}'.format('a', 'b', 'c')
'{2} {1} {0}'.format('a', 'b', 'c')
# 数字代表在format当中的第几个
'{color} {n} {x}'.format(n=10, x=1.5, color='blue')
# 字符相当于map
'{0:10} {1:10d} {2:10.2f}'.format('foo', 5, 2 * 3.14)
'{0:10} {1:10d} {n:10.2f}'.format('foo', 5, 2 * 3.14, n=12)

s = "some numbers:"
x = 1.34
y = 2
# 用百分号隔开,括号括起来
t = "%s %f, %d" % (s, x, y)

python中的字符串有一个非常有趣的现象

负数代表的是后面数的字符

s = "hello world"
s[-2]
# s[11]
# 大于长度的字符串却是不行的

s[:]
->'hello world'
s[::2]
hlowrd
# 每隔2个字符取一次

本文由金沙澳门官网发布于网络编程,转载请注明出处:金沙澳门官网:python学习笔记2,Python字符串详细

关键词: 金沙澳门官网

上一篇:【金沙澳门官网】C# 破解 Reflector8.5
下一篇:没有了