Python第六天字符串

155 阅读9分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

字符串

目标

  • 认识字符串
  • 下标
  • 切片
  • 常用操作方法

认识字符串

字符串是Python中最常用的数据类型,我们一般使用引号创建字符串,创建字符串很简单,只为变量分配值即可

字符串类型的数据【是多方多面的,包括爬虫爬出的数据很多都是字符串类型,也就表明字符串的重要性】

a ='hello world'
b = "hello world"print(a)
print(b)
print(type(b))
print(type(a))

字符串特征

 name='1'
 name="1"
 name='''1'''
 name=""""1""""

这些都能打印表示字符串类型

字符串输入

在python语言中包括其他语言中输入很多都有用input

所以说input也是非常重要的一个函数

a=input("你的年龄是:")
print(f'你的年龄是{a}')

字符串的操作方法

字符串的操作方法就是去学他的操作函数

我们只需要记住常用的

字符串的常用操作方法有,查找,修改,判断,三大类

查找

查找的概念其实就在一堆东西找到你要的,这个过程呢其实就是查找

常用的字符串查找函数

find()
index()

这两个函数都是检测某个串是否中某个字符串当中,如果真的存在就会返回位置的下标

find()函数找串,就是如果存在返回位置下标,如果不存在返回负1

index()这个函数的也是差不多的,如果存在返回下标,如果不存在就爆错

串是什么【子串】

a=“123 456 789 111 222#这123 456 789 111 222整个就是一个字符串
#那么串就是里面的部分字符
#123 是一个串 456 是一个串,那么也可以称为子串
a="胜而不灭,霸而不辱,这才是真正的征服"print(a.find('霸'))
print(a.find('霸',1,10))
print(a.find('爸'))
解释
#这里我们定义一个变量
a="胜而不灭,霸而不辱,这才是真正的征服"#这就是通过pint打印查找的结果出来
#a是我们的变量,要在我们变量值中去查找
#.find()是我们字符串中的查找函数
#里面的霸是我们要查找对象,也就是目标
#如果在我们的a这变量里面的有这个霸字存在,那么就会返回他的相对为位
#那么正确的位置是多少呢
#他会打印出一个5字
#五就是他的位置,胜而不灭占了四位,而逗号他是不占的,只有空格才占
print(a.find('霸'))
#这里为什么,后面有连接一些数字呢,这些数字是什么呢
#这里解释一下
#后面连接的数字是,一个范围,也就是他局限与在第一个字到第十个字这个范围里面找这个霸字
print(a.find('霸',1,10))
#那么这里一个爸字是不存在的,所以他会返回打印出一个-1
print(a.find('爸'))

count()字符串统计函数

a="胜而不灭,霸而不辱,这才是真正的征服"print(a.count('霸'))
print(a.count('霸',1,10))

先说一下这个统计函数的功能

统计函数就是统计这个子串的数量

就好比在一篇文章中统计一个我字的数量

他会打印显示出数量的个数

rfin()和rindex()

这两个函数其实啊

和我们的find()index()是的功能上是一模一样的

但是主要不一样的就是顺序问题了

find()是从左往右

rfind()是从右往左

修改

修改无非就是,通过调用函数去修改字符串中的数据

有哪几个比较常用的修改函数呢

replace()   #这个是一个替换函数,就是用新的去替换旧的,但是他也属于修改函数
split()     #他是用来分割字符串的
joion()     #他是用来合并一个字符串的 两个字符串合并成为一个新的字符串 

replace()

a="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"
b="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"print(a.replace('我','我呢'))
print(b.replace('我','我呢',1))
​

输出结果是

古往传奇多少别离,我呢 只是不经意 遇到了你古往传奇多少别离,我呢 只是不经意 遇到了你
古往传奇多少别离,我呢 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你
解释
#这里设置两和变量分别为a和b为什么呢等一下就知道了
a="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"
b="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"#这里是打印替换后的字符串
#a是我们的变量通过点来连接我们的函数replace
#在函数中的我是替换的对象,而第二个位置的我呢是要替换成的,也就是说要把我呢替换到我这个位置上去
print(a.replace('我','我呢'))
#好我们来说一下这个,为什么后面有一个1字呢,这里说一下,1代表的是一个次数的意思,也是就是是说,只替换一次,那么他的替换顺序是从左往右进行替换的,如果在位置一有一个我字位置二也有一个我字那么只会替换位置一的我字,二位置二的我字不会被替换,因为替换的次数只要一次
print(b.replace('我','我呢',1))
​

split()

这个函数是什么呢

这是一个分割函数

a="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"
b="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"
c="古往传奇多少别离,我 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你"
​
​
print(a.split('我'))
print(b.split('我',1))
a=c.split('我')
print(a)
​
​

输出结果是

['古往传奇多少别离,', ' 只是不经意 遇到了你古往传奇多少别离,', ' 只是不经意 遇到了你']
['古往传奇多少别离,', ' 只是不经意 遇到了你古往传奇多少别离,我 只是不经意 遇到了你']
['古往传奇多少别离,', ' 只是不经意 遇到了你古往传奇多少别离,', ' 只是不经意 遇到了你']
解释

我们先来解释一下这结果啊

为什么这个结果中的我没有了呢

很简单啊,我们的分割函数就是把我们分割对象改成了一个逗号,对字符串达到了分割的效果

print(b.split('我',1))

那么这个后面的一也就是分割一次,和我们前面说的替换是一样的

join()

那么这里说一下这个合并函数,join()

a="我和空太是恋人以上,友人未满的关系,我和空太是恋人以上,友人未满的关系"
b="我和空太是恋人以上,友人未满的关系,我和空太是恋人以上,友人未满的关系"
c="我和空太是恋人以上,友人未满的关系,我和空太是恋人以上,友人未满的关系"
​
​
print('...'.join(a))
​
​
l=c.join('...'.join(a))
print(l)
​
​

输出结果

我...和...空...太...是...恋...人...以...上...,...友...人...未...满...的...关...系...,...我...和...空...太...是...恋...人...以...上...,...友...人...未...满...的...关...系
我...和...空...太...是...恋...人...以...上...,...友...人...未...满...的...关...系...,...我...和...空...太...是...恋...人...以...上...,...友...人...未...满...的...关...系

删除空白字符

lstrip()  #删除左侧空白字符
​
rstrip()  #删除右侧空白字符
​
strip()   #删除所有空白字符
​
​
a=" 一旦你尝试过天空的味道,你就会永远向上仰望"
b="一旦你尝试过天空的味道,你就会永远向上仰望 "
c=" 一旦你尝试过天空的味道,你就会永远向上仰望 "
​
​
​
print(a.lstrip())  #删除左侧空白字符
​
print(b.rstrip())  #删除右侧空白字符
​
print(c.strip())   #删除所有空白字符

字符串对齐

ljust()     #左对齐
rjust()     #右对齐
center()    #居中对齐
a="吵死了吵死了!"
b="吵死了吵死了!"
c="吵死了吵死了!"
​
​
print(a.ljust(10))     #左对齐
print(b.rjust(10))     #右对齐
print(c.center(10))    #居中对齐print(a.ljust(10),'.')     #左对齐
print(b.rjust(10),'.')     #右对齐
print(c.center(10),'.')    #居中对齐

输出结果是

吵死了吵死了!   
   吵死了吵死了!
 吵死了吵死了!  
吵死了吵死了!    .
   吵死了吵死了! .
 吵死了吵死了!   .
解释

这上有写10的表示,一行只有有10字,而后面有连接点的,表示剩余没有文字的地方用点填充

判断

分组说明

第一组

startswith()    #判断是否以指定的字串或者说以指定的字母数字开头,就是他是不是按照我的要求去开头的
endswith()       #判断是否以指定的字串或者说以指定的字母数字结尾,就是他是不是按照我的要求去结尾的

那么他的判断是正确返回true错误返回false

a="即使你忘记了我,我也不会遗忘你"print(a.startswith('即使'))
print(a.startswith('即'))
​
​
print(a.endswith('忘你'))
print(a.endswith('你'))
​
​
#这些都返回为true

第二组

isalpha()       #判断字符串中是不是都是字母的
isdigit()       #判断字符串中是不是都是数字的
isalnum()       #判断字符串所以都是字母或者数字-不能有空格不然返回false
isspace()       #判断字符串是否都是空白
#是则返回True不是则返回False
​
a="abc"
b="123"
c="abc123" #不能有空格不然返回false
d="    "
​
​
print(a.isalpha())
print(b.isdigit())
print(c.isalnum())
print(d.isspace())
#都返回True

非重点

capitalize() 首字母大小函数

意思就是他会把首字母改成大写

a='abc'
​
print(a.capitalize())
​

输出

Abc

title() 没个单词或者段子首字母为大写

a='abc efg'
​
print(a.title())
​

输出结果为

Abc Efg

upper() 所以都大写

a='abc'
​
print(a.upper())
​

ABC

lower() 所以转小写

a='ABC'
​
print(a.lower())
​

abc

总结

  • 下标

    计算机数据序列这每个元素分配都是从0开始的编号

  • 切片

    序列名【开始位置下标:结束位置下标:步长(间隔)】

  • 常用操作方法

    find()

    index()