您的位置:首页 > 编程语言 > Python开发

Python基础学习 --- 数据类型之字符串

2020-07-28 10:24 337 查看

字符串

字符串定义

字符串,关键字:str
字符串的定义很简单,成对的单引号、双引号和三引号括起的内容都是字符串。

a = 'hello'
b = "hi"
c = """666"""
d = "0.03"
print(type(a))
print(type(b))
print(type(c))
print(type(d))

输出结果:

字符串长度统计

字符串里的元素:单个字母、数字、汉字、单个符号等都称之为一个元素。
len():统计数据的长度。

s = 'hello!'
print(len(s))

输出结果:

字符串取值

  1. 单个取值: 字符串名[索引值]
    索引:正序是从0开始标记;反序是从-1开始标记(-1,-2,-3,-4…)
s = 'hello!'
print(s[5])
print(s[-1])

输出结果:

  1. 多个取值(切片):字符串名[索引头:索引尾:步长]
    步长默认为1,注意切片取头不取尾
s = 'hello!'
print(s[1:5:1]) # ello
print(s[1:5])  # ello
print(s[1:5:2]) # 1,3 el
print(s[2:4:2]) # 2 l

输出结果:

字符串多个取值时,还可以省略索引头、索引尾;

print(s[:]) #代表从正无穷取到负无穷 即全取 hello!
print(s[:4]) #代表从0开始 0,1,2,3 hell
print(s[3:]) # 代表从3开始,取到最后 lo!

输出结果:

  1. 练习:s = ‘hello!’ 请利用切片,倒叙输出s的值,输出结果为!olleh。
    此题很简单,大家很容易就会想到索引头为-1,索引尾为-7,但会忽略步长,会下意识的认为,步长为1,可以忽略,所以就直接省略,但在控制台是打印不出内容的。
    但其实此题的步长是-1,不可省略。
s = 'hello!'
print(s[-1:-7:-1]) # 步长为-1,如果是1的话不会有输出
print(s[::-1])

输出结果:

字符串分割 split()方法

用法:
字符串.split(可以指定切割符,切割次数)
split方法有两个参数,sep和maxsplit,分别代表分隔符和切割次数,如果指定切割次数为n,那么将会分割成n+1份;函数返回值是一个包含了字符串的列表。如果为指定sep,或者它的值为None,则任何空白的字符串都是分隔符,空的字符串也会从结果中删除。
返回的数据是列表类型,列表里的子元素是字符串,指定的切割符消失不见。

d = ' hello'
print(d.split()) #没有任何参数 代表消除所有空格、换行符、制表符等。
print(d.split(" ")) # [' ', 'hello']
print(d.split("e")) # [' h', 'llo']
print(d.split("l",1))# [' he', 'lo']
print(d.split("l",2))#[' he', '', 'o']

输出结果:

该方法最初使用时,还是懵懂的状态,所以在这多放些示例:

e = 'U Jiu Ye'
print(e.split())  #输出结果:['U', 'Jiu', 'Ye']

f = 'U, Jiu, Ye'
print(f.split())  #输出结果:['U,', 'Jiu,', 'Ye']

g = 'U, Jiu, Ye'
print(g.split(','))  #输出结果:['U', ' Jiu', ' Ye']

h = 'I love Python and ujiuye'
print(h.split())   #输出结果:['I', 'love', 'Python', 'and', 'ujiuye']
print(h.split(maxsplit=3))  #输出结果:['I', 'love', 'Python', 'and ujiuye']
print(h.split(maxsplit=2))  #输出结果:['I', 'love', 'Python and ujiuye']

i = 'I-love-Python-and-ujiuye'
print(i.split('-',2))# 使'-'作为分隔符,最多分为3份 输出结果:['I', 'love', 'Python-and-ujiuye']

字符串替换 replace()方法

用法: 字符串.replace(指定替换值,新值,替换次数)
示例:

e = 'hello'
new = e.replace('l','@',2)
print(new)

输出结果:

字符串去除指定字符 strip()方法

用法: 字符串.strip(指定字符)
1. 默认去掉空格。2. 只能去掉头和尾的指定字符

s = ' hello!'
print(len(s))  #7
new = s.strip() #默认去掉空格
print(new)
new1 = s.strip("!")
print(new1)

输出结果:

字符串find()函数

用法: 寻找字符串里的子字符、子字符串,如果找到的话,返回索引;若未找到,返回-1。

s = 'hello'
print(s.find('o'))
print(s.find('m'))

输出结果:

字符串的拼接

用法:字符串的拼接可以用加号+实现,但必须保证加号两边的变量类型一致

s_1 = "python,"
s_2 = "中秋节快乐!"
s_3 = 666 #整数
print(s_1+s_2+str(666))   #str(数字):可以将数字强制转换成str类型

输出结果:

字符串的格式化输出

  1. 格式一:format
    用法:用{}来占位,{里可以添加索引来指定顺序}
  2. 格式二:%
    用法:%s代表字符串、%d代表数字、%f代表浮点数
  3. 第三种:字符串拼接

给出变量
age = 18
name = '奥利奥’
输出:高三一班的奥利奥今年18岁!

print('高三一班的'+name+'今年'+str(age)+'岁!')
print('高三一班的{0}今年{1}岁!'.format(name,age))
print('高三一班的%s今年%d岁!'%(name,age))

输出结果:

对了,上述关于字符串split()方法的部分示例取自于https://baijiahao.baidu.com/s?id=1636759352252377931&wfr=spider&for=pc
The End !

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: