Python---基本知识11之常用数据类型字符串
在讲字符串之前,插一下bool类型,对于bool类型,没什么好说的,我觉得应该注意一点的就是bool类型是int型的子类,这点和其他编程语言有点不一样,所以bool类型是可以进行数值计算的,true就是1,false就是0;
字符串:是由单个字符组成的一个集合
'woshizl' 这个就是一个字符串 我们可以把字符串赋值给一个变量 : name='woshizl'
非原始字符串:我们一般使用的都是非原始字符串,即没有任何修饰的字符串,
name = 'zhangsan' girlname = 'lisi'
print(name,girlname)
原始字符串:意思就是我引号里面是啥,就会输出啥,这又是啥意思呢?和非原始字符串有啥区别呢?介绍这个之前,我们先看看转义符,
转义符:通过转换指定的字符,使得他具备特殊的含义,就可以理解成变异人一样;常见的几个转义符:
续行符:\,
单引号:\' 双引号:\''
换行:\n 横向制表符:\t
我们在字符串里面写上这些字符,就会有特殊的效果;比如输出'my name is zl,age:18'要求age换行,那就这样:
name='my name is zl,\nage :18'
print(name)
这样就实现了换行,那比如就是要求有\n这个字符怎么办呢,那就需要把\这个字符转回去,就需要在加一个\;就会变得更复杂;那原始字符串的意思就是字符串是什么,我们就会输出什么,不管什么转义不转义,非原始字符串的话遇到转义就会去转义:
原始字符串也很简单,只需要在字符串前面加一个r就可以了;
name=r'my name is zl,\nage :18'
print(name)
提供这些什么原始字符串,非原始字符串也是为了我们操作更方便,这种没啥可理解的。
然后我们在看看字符串的表现形式,以及各种形式的特点:形式就多了
name='woshi' :单引号
name="woshi" :双引号
name='''woshi''' :3个单引号
name="""woshi""" :3个双引号
你说为啥会有这么多存在的形式呢,当然也是为了程序猿大哥些开发更方便;这么多形式,比如单双引号混合使用,可以避免使用转义字符:有时候就是需要输出带有”“这种。就可以混合使用,控制字符的都是成对存在的,向下面这种,第一个是’,那他就会去找下一个‘,里面的全是字符,所以就可以避免使用转义了;
name='my name is "齐天大圣"'
print(name)
那么三个’‘’的作用呢,其实一般写三个'''都是用于注释的,并且可以直接跨行书写:跨行之后输出也是换行的;
name='''我是谁,
我在哪里'''
print(name)
我们可以随便看一下python源码的注释,你会发现都是用三个'''引用的;
字符串的一般操作:
字符串拼接:总共有四种方式
1.直接相加
name='my name is zl' age='年龄是18'
print(name+age)
2.直接放在一起
name = 'my name is zl''年龄是18'
3.通过%拼接
name1='zl' name = 'my name is %s''年龄是18'%name1
print(name)
4.通过*
name='sz'
print(name*10)
字符串切片:获取字符串的某一个片段,说白了就是获取一个字符或者多个字符,通过name[]获取,需要注意一点就是下标从0开始,也可以从-1开始,-1就是最后一个,-2是倒数第二个,以此类推;
name='woshi fengbaobao'
print(name[1])
print(name[-2])
上面的都是获取一个字符的用法,下面讲获取多个字符;也都是大同小异:
name='woshi fengbaobao'
print(name[2:8:2])
这个name[::]里面有三个参数,分别是从哪个位置开始取,取到哪个位置,第三个参数是步长,就是隔多少步取一个;默认值分别是,len(str),1;针对步长,如果步长大于0,那就是从左到右取,步长小于0就是从又到左;需要注意一点就是不能从头部跳到尾部,或者从尾部调到头部;
name='woshi fengbaobao'
print(name[-2:-8:-2])
就一个特殊案例:反转字符串:步长是-1,其他是默认值;
name='woshi fengbaobao'
print(name[::-1])
最后针对字符串还有一点最重要的,就是针对字符串的函数操作,由于函数太多,也不可能全部记住,主要是用的时候会查找,知道用哪些函数就可以了,我这主要列举几个重要的函数:
1.字符串长度:len()
name='woshi fengbaobao'
print(len(name))
2.查找:有的话就返回该值的下标,没有就返回-1 find()
name='woshi fengbaobao '
print(name.find('f'))
3.获取:必须拿到这个字符的下标,不然就报错:index()
name='woshi fengbaobao '
print(name.index('f'))
4.替换:replace()
name='woshi fengbaobao '
print(name.replace('o','='))
5.转换成小写:lower()
name='WOSHISHUI'
print(name.lower())
6.转换成大写:
name='woshi fengbaobao'
print(name.upper())
7.分割:split(),分割之后,就成了一个列表;
name='woshi fengbaobao'
print(name.split('o'))
8.拼接:join(),把可迭代的对象进行拼接在一起;join()的用法稍微有点不同,是把''插入到列表里面去,生成一个字符串;
name=['wo','shi','shui']
print('-'.join(name))
9.判断是否全是字母:isalpha()
name='woshi fengbaobao'
print(name.isalpha())
10.判断是否全是数字:isdigit()
name='woshi fengbaobao'
print(name.isdigit())
11.判断是否是字母和数字:isalnum()
name='woshifengbaobao'
print(name.isalnum())
12.判断是否以什么字符开头:startswith()
name='woshifengbaobao'
print(name.startswith('w'))
13.判断是否以什么字符结尾:endswith()
name='woshifengbaobao'
print(name.endswith('w'))