Python的字符与字符串

Python的字符与字符串

1 Python的字符类型

Python的字符类型为str, 同时str也是一个构造字符的函数. 还有另外三种构造字符的方式:

  • 单引号''构造字符, 比如:'Hello world!', 'A'.
  • 双引号" "构造字符, 比如: "Hello Dennis.", "BIRL".

    虽然字符串和字符类型有两种(单引号' '和双引号" ")表示方式, 但是建议统一使用双引号表示方式.
    Python中字符和字符串的差异很小, 几乎没有差别, 如无特别说明, 本文用”字符”表示字符串和字符.

  • 三重引号''' '''构造字符, 这与其他语言有不同, 三重引号会记录任何输入的信息, 包括制表符\t,引号', 回车\n等(注意! 必须要以'''结尾, Python解释器才能识别三重引号输入完成), 同时三重引号还可以在.py脚本编辑时充当多行注释.

三重引号

2 非显示字符 & 字符序列

2.1 通用非显示字符

非显示字符
回车符\n
制表符\t

通常字符是以ASCII码表示的, Python中有两个特殊的函数用于捕获字符和ASCII码之间的关系:

  • ord( )函数: 显示字符对应的ASCII码.
>>> ord("a")
>>> 97
>>> ord("Ha") # 这是错误语句, ord( )函数的参数只能是一个字符, 不能是字符串.
  • chr( )函数: 显示对应ASCII码的字符.
>>> chr(97)
>>> 'a'

2.2 字符序列

字符串对象定义为字符序列, Python使用索引运算符[ ], 查看字符串序列的每一单字符.

>>> string = "Dennis is BIRL lab member."
>>> string
'Dennis is BIRL lab member.'
>>> string[0]
'D'
>>> string[1]
'e'
>>> string[-1]
'.'

Python的索引[ ]运算符能够适用于所有的集合, 索引[ ]运算符有三个参数, 其中后两个为可选参数:
运算符格式参数: [起始索引:终止索引:索引步长]

>>> string = "Denis is BIRL lab member."
>>> string[:]
'Dennis is BIRL lab member.'
>>> string[2:8]
'nnis i'
>>>string[0:8:2]
'Dni '

3 字符操作

3.1 字符连接和重复

  • 连接符+ : + 需要两个字符对象, 得到一个新字符, 由前面的字符首尾连接而成.
>>> string = "Dennis is BIRL lab member."
>>> string1 = "Hello BIRL!"
>>> string + string1
'Dennis is BIRL lab member.Hello BIRL!'
  • 重复符* : *运算需要一个字符和一个整数, 产生的新字符为原来字符重复整数次.
>>> string1 = "Hello BIRL!"
>>> string1 * 2
'Hello BIRL!Hello BIRL!'

type()函数可以用于任何对象的检查, 返回值为对象的类型.

>>> string1 = "Hello BIRl!"
>>> type(string1)
<type 'str'>
>>> type(2)
<type 'int'>

3.2 字符比较和检查

  1. 字符比较
布尔运算符运算结果为True or Flase
<小于
>大于
<=小于等于
>=大于等于
==等于
!=不等于

如上比较运算符均能用于字符或者字符串的比较, 比较的本质是转换成ASCII码比较, 如果为字符串则对字符串进行逐一比较.返回值为True或者False.

>>> "a" == "a"
True
>>> "a" != "b"
True
"a" > "b"
False
"abc" > "abcd"
False
>>> 
  1. 字符检查
    in运算符用于检查集合成员. 返回值为True或者False.
>>> string = "Dennis is BIRL lab member."
>>> "D" in string
True
>>> "Dennis" in string
True

字符串集合是不可改变的, 若程序尝试通过索引修改字符串, Python解释器将报错. 如果需要修改字符串集合则需要重赋值的方式修改.

4 字符函数与方法

Python有很多处理字符的字符函数, 还有一类特殊函数,称为方法.

4.1 字符函数 & 格式化输出

字符串函数比字符串方法少很多, 后续将介绍更多的字符串函数.

>>> string = "hello BIRl!"
>>> len(string)
11
>>> len("a")
1

我们可是使用print函数输出字符串, 下面通过格式化输出方式, 以多种形式输出.
print函数的格式化输出基本语法:

>>> print "Dennis is %s lab member." % ("BIRL")
Dennis is BIRL lab member.
  • 双引号中%开头的特殊字符, 表示格式化输出对象的位置和格式.
  • 双引号外的%, 表示分隔符, 分隔print函数与后面的元组.
常用格式输出
%s字符换
%d十进制整数
%f浮点小数
%e浮点指数

每一条命令后面还可增加特定的详细的信息:

%[name][flags][width][.precision]code
>>> print "%s is %4d years old." % ("Dennis" , 25)
Dennis is   25 years old.
>>> print "pi = %.4f" % (3.141592654)
pi = 3.1416

4.2 字符方法

方法是函数的变形, 只是调用方式不一样. 每一种方法要结合特定的对象进行调用. 字符对象有字符对象的方法, 整数对象有整数的方法, 方法采用”点调用” (.) 的方式表示, 同时方法还和函数一样, 可以选择参数.以upper( )转换字符为大写find( )查找子对象为例:

>>> string = "Dennis is BIRL lab member."
>>> string.upper()
'DENNIS IS BIRL LAB MEMBER.'
>>> string.find("Dennis")
0
>>> string.find("e")
1

4.3 方法链

Python语言具有一种强大的功能, 既可以链接方法和函数. 它使用一系列”点标记”实现链接. 链接的意义在于: 从一个方法返回的对象可以用于另一种方法的主调对象. 主调对象顺序的规则是从左到右, 使用前一个方法产生的对象. 以上面两个方法:upper( )find( )为例:
其中find( )方法有参数fand(需查找的字符,起始查找位置,停止查找位置)

>>> string = "Dennis is BIRL lab member."
>>> string.upper()
'DENNIS IS BIRL LAB MEMBER.'
>>> string.upper().find("E")
1
>>> string.upper().find("E",string.upper().find("E")+1)  # 方法可以嵌套
20

下面是一些常用的字符串方法, [ ]表示可选参数.

常用字符串方法
capitalize()lstrip([chars])
center(width [,fillchar])partition(seq)
count(sub[,start[,end]])replace(old, new[,count])
decode([encoding[,errors]])rfind(sub[,start[,end]])
endswith(suffix[,start[,end]])rindex(sub[,start[,end]])
find(sub[,start[,end]])rjust(widtb[,fillchar])
index(sub[,start[,end]])rpartition(seq)
isalnum()rstrip([chars])
isalpha()split(sep[,maxsplit])
isdigit()splitlines([keepends])
islower()starswith(prefix[,start[,end]])
isspace()strip([chars])
istitle()swapcse()
isupper()title()
join (seq)translate(table[,deletechars])
lower()upper()
ljust (width [,fillchar])zfill (width)
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值