python基础系列——字符串知识点,函数及操作(持续更新中)

写在前面

此文为本人在学习python过程中,整理出来的学习笔记。主要参考书目有:
1、《python编程:从入门到实践》;
2、《python学习手册》;
3、《像计算机科学家一样思考Python》

一、字符串简介与书写

在python 3中,有三种类型的字符串:str用于Unicode文本,bytes用于二进制数据,bytearray是bytes的变体。

1.字符串的书写

python中用引号包裹起来的都为字符串类型,如:

#单引号:
'spam'
#双引号
"spam"
#三引号
'''spam'''

单引号与双引号作用一样,可互换。之所以要有这两种一样的表达式是因为可避免在字符串中出现引号时,就必须使用转义字符。如:

'knigth''s'

注意在两个字符串中间加上引号会使其变为元组!

a = 'python' , 'jave'
print(a)
print(type(a))
'''
运行结果为:
('python', 'jave')
<class 'tuple'>
'''

2.制表符

python中字符串书写时注意制表符的运用。

s = 'ab\tc'
'''
结果为:
ab	c
'''

常见制表符有:
常用制表符简单示例:

strr = '使用制表符的意义:\n\t可使文本更加规范。'
print(strr)

'''
结果为:
使用制表符的意义:
	可使文本更加规范。
'''

3.取消转义

有时制表符会让代码运行时产生歧义,这时既需要取消转义,常用的有raw与\。如:

myfilepath = 'c:\ew\text.date'  #\t为制表符
print(myfilepath)
'''
运行结果为:
c:\ew	ext.date  #代码运行时产生歧义
'''
#取消转义
myfilepath = r'c:\ew\text.date'  #r必须紧跟第一个引号
print(myfilepath)
'''
运行结果为:
c:\ew\text.date
'''
#用\取消转义
path = 'c:\ew\\text.date'
print(path)

'''
运行结果为:
c:\ew\text.date
'''

二、字符串的基本操作

字符串的基本操作
在这里插入图片描述

1.字符串长度、拼接、重复操作:

#计算字符串长度
print(len('abcd'))
#字符串拼接
print('abc'+'efg') #注:拼接的两个必须都为字符串
#字符串重复
print('a'*4)
'''
运行结果为:
4
abcefg
aaaa
'''

2.For 循环及 in 表达:

For 循环

myjob = 'hecker'
for word in myjob:
	print(word)
'''
运行结果为:
h
e
c
k
e
r
'''

注意还有下面的一种用法:

myjob = 'hecker'
for word in myjob:
	print(word,end = ' ')
'''
运行结果为:h e c k e r 
'''

In 返回的为布尔值,及True和False:

myjob = 'hecker'
print('h' in myjob)
print('d' in myjob)
'''
运行结果为:
True
False
'''

3.索引及切片:

s = 'spam'
print(s[0])  #第一位为0
#结果为:s

print(s[1:3]) #及从spam的1位开始但不包括3位
#结果为:pa

print(s[-1]) #最后一位,负偏移意味着从右反向计数
#结果为:m

print(s[1:]) #从1位开始直到最后一位
#结果为:pam

print(s[:3]) #从0位开始到3位(不含第三位)
#结果为:spa

print(s[:]) #全部位
#结果为:spam

切片的步长:及切片操作包含一个可选的步长参数。如:

strr = '1234567890'
print(strr[0:8:2])
#结果为:1357

3.1 反向切片的应用

切片两边的数值一般来说需从小到大:

strr = '0123456789'
print(strr[0:8])
#运行结果为:01234567

print(strr[8:0])
#运行结果为空字符串

print(strr[4:0:-1]) #及完成了从4位到0位(不包括0位的反向切片)
#运行结果为:4321

4.字符串转换

在一定条件下,字符串与其他类型数据之间可进行转化:
最常用的函数有:
int():将符合格式的对象转化为整数;
str():将对象转化为字符串
float():将符合格式的对象转化为浮点数

a = '42'
b = int(a)  #将符合格式的字符串转化为整数
print(type(a))
print(type(b))
'''
运行结果为:
<class 'str'>
<class 'int'>
'''

4.1 ord与chr函数

ord函数将单个字符转化为对应的ASCII码,chr函数则起到相反作用。

print(ord('s'))
#运行结果:115

print(chr(115))
#运行结果:s

5.字符串的修改

字符串属于‘不可变序列’,一般来说不允许直接修改,如:

s = 'spam'
s[0] = 'x'
#报错:'str' object does not support item assignment

但是可以通过对变量的赋值与字符串切片相结合的操作,来达到修改的目的。如:

s = 'spam'
s = 'x' + s[1:]
print(s)
#运行结果为:xpam

也可通过replace函数对字符串进行替换操作:

s = 'spam'
s = s.replace('s','xxx')
print(s)
#运行结果为:xxxpam

6.字符串的格式化

有时在书写文本过程中需要对其中有些内容进行格式化,以达到想要输出的结果。如:

number = 2
food = '香蕉'
print('早上我一般喜欢吃%d个%s。' % (number,food))
#运行结果:早上我一般喜欢吃2个香蕉。

在这里插入图片描述注意以下的用法所导致不同的结果!

a = 1.2353456
b = 2
c = 3
print('a的值为:%.2f,b的值为:%2d,c的值为:%.2d' % (a,b,c))
#运行结果为:a的值为:1.24,b的值为: 2,c的值为:03

6.1 基于字典的字符串格式化

strr = '''
大家好,
我的名字是%(name)s,
年龄是%(age)s岁'''

dict1= {
	'name' : '小明',
	'age' : '21'
}

print(strr % dict1)

运行结果为:
大家好,
我的名字是小明,
年龄是21岁

三、字符串方法

常用的字符串方法:
在这里插入图片描述

1.find方法

find方法用来寻找字符串中是否包含所查找对象,如包含则返回其所在位置(第一次出现的位置),不包含则返回-1:。如:

s = 'spam'
result_1 = s.find('p')
result_2 = s.find('b')
print(result_1)
#运行结果为:1

print(result_2)
#运行结果为:-1

又如:

strr = 'xxspspspam'
result = strr.find('sp')
print(result)
#运行结果:2

1.1 利用find方法达到修改字符串的目的

可利用find方法与切片相结合,达到在指定位置修改字符串的目的。如:

strr = '今天早上我吃了两个包子,但是还是没吃饱!'
print(strr)
#运行结果:今天早上我吃了两个包子,但是还是没吃饱!

where = strr.find('包子')
strr = strr[:where] + '馒头' + strr[where+2:]
print(strr)
#运行结果:今天早上我吃了两个馒头,但是还是没吃饱!

2.list,join方法

2.1 list方法

list方法可直接将字符串转化为列表。如:

strr = 'spam'
list_1 = list(strr)
print(list_1)
#运行结果为:['s', 'p', 'a', 'm']

2.2 join方法

jion方法可将字符串转化为列表。如:

list1 = ['s', 'p', 'a', 'm']
strr1 = ''.join(list1)
print(strr1)
#运行结果:spam
strr2 = '---'.join(list1) #引号内部为列表合并为字符串之间的分隔符
print(strr2)
#运行结果为:s---p---a---m

3 split方法

可用split方法对字符串进行切割,返回一个列表。如:

strr = '我想吃酸菜鱼;我想吃地锅鸡;我想吃炒米粉'
list1 = strr.split(';')
print(list1)  #返回结果为列表
#运行结果为:['我想吃酸菜鱼', '我想吃地锅鸡', '我想吃炒米粉']

4 其他一些常用方法

4.1 strip 方法

rstrip方法用来去除字符串末尾多余的空白字符串。如:

strr = '我现在想吃地锅鸡。              '
print(strr.rstrip()) #去除末尾多余空白
#运行结果:我现在想吃地锅鸡。

lstrip方法用来去除字符串开头多余的空白字符串。如:

strr = '             我现在想吃地锅鸡。'
print(strr.lstrip())
#运行结果为:我现在想吃地锅鸡。

strip方法则是用来去除字符串首位多余的空白字符串。如:

strr = '             我现在想吃地锅鸡。      '
print(strr.strip())
#运行结果为:我现在想吃地锅鸡。

注:strip也可用来去除一些制表符,如:

strr = '     \n我现在想吃地锅鸡。\n          '
print(strr)
#运行结果为:
'''     
我现在想吃地锅鸡。
   '''       
print(strr.strip())
#运行结果为:我现在想吃地锅鸡。

4.2 upper方法

字母全部大写

line = 'The knights who say Ni!'
print(line.uppe)
#运行结果:THE KNIGHTS WHO SAY NI!

4.3 lower方法

字母全部小写

line = 'THE KNIGHTS WHO SAY NI!'
print(line.lower())
#运行结果:the knights who say ni!

4.4 title方法

是字符串想个的单个单词首字母大写,如:

line = 'the knights who say ni!'
print(line.title())
#运行结果:The Knights Who Say Ni!

4.5 count方法

计数,计数在字符串中出现的次数。如:

strr = 'aaa bbb ccc'
result = strr.count('a')
print(result)
#结果为:3

5 format方法

format方法也相当于是一种格式化方法,其简单的使用方法为:

template = '{0},{1} and {2}'
print(template.format('spam','ham','eggs'))
#运行结果为:spam,ham and eggs
strr = '今天天气很{weather},我今天很{mind}。'
print(strr.format(weather = '晴朗',mind = '开心'))
#运行结果为:今天天气很晴朗,我今天很开心。

猜你喜欢

转载自blog.csdn.net/zhouz92/article/details/102478101