• Python基础内容训练2(常用的数据类型-----字符串)


    一 基本数据类型操作——数值

    首先字符串出现的时候一定要加‘’!!!!!

    注意:int和float进行算术运算的时候,精度会自动提升为float类型
    还要如果数值参与逻辑运算的时候,参照的标准是非0即真

    数学函数

    内建函数:
    返回数字的绝对值(abs)
    求数字中的最大值,最小值(max,min)
    对数字进行四舍五入(round)
    返回x的y次幂(power)

    print(abs(-100))
    print(max(-1,3,8,9))
    print(min(-1,-2,9,9))
    print(round(3.1416))
    print(round(3.1416,2)) #对数字进行四舍五入,后面的参数是保留几位小数
    print(pow(2,4)) #相当于2的四次幂
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    math模块的函数(需要导入模块)
    上取整、下取整
    开平方
    求对数

    
    print(math.ceil(4.1))
    print(math.ceil(4.9))  #上取整,ceil天花板
    print(math.floor(3.3)) #下取整,floor地板
    print(math.sqrt(4)) #开平方
    print(math.log(10000,10))#log(x,base)以base为基数,x为对数,10的几次方是10000-4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    随机函数(需要导入random模块)

    random函数:获取范围内的小数【0,1)左闭右开
    choice函数:从一个序列中,随机挑选一个数值
    uniform函数:【x,y】范围内的随机小数
    randomint(x,y)函数:范围内是随机的整数
    randrange(start,stop=None,step=1):给定区间内的一个随机整数,【start,stop)左闭右开,这个步长说明第一次随机的数字和下一次随机的数字之间肯定超过这个步长

    import random
    print(random.random())
    a = [1,2,3]
    print(random.choice(a))
    print(random.uniform(1,3))
    print(random.randint(1,3))
    print(random.randrange(1,13,2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    三角函数
    在这里插入图片描述
    正弦函数:sin(x),x参数所接受到的是一个弧度
    pi = 180度,要进行转换

    import math
    #hudu =30 / 180 * pi
    hudu1 =30 / 180 * math.pi
    hudu2= math.radians(30) #角度转换为弧度
    result1 = math.sin(hudu1)
    result2 = math.sin(hudu2)
    print(result1)
    print(result2)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    因为精度问题,所以是0.5左右
    在这里插入图片描述

    二 基本数据类型操作——字符串

    字符串:单个字符组成的一个集合
    在这里插入图片描述
    这里的原始字符串是指里写什么东西,实际上出来的就是什么东西

    字符串的一般操作-----字符串的拼接
    在这里插入图片描述

    introduction = 'woshi%s'%'lll'
    introduction1 = 'woshi%s,%d year old'%('lqz',22) #%s是占位符,后面的%是用来填坑的
    print(introduction)
    print(introduction1)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    字符串的一般操作-----字符串的切片操作
    在这里插入图片描述

    在这里插入图片描述

    name = 'abcdefg'
    print(name[0])
    print(name[6])
    print(name[-1])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    在这里插入图片描述

    • name[起始;结束;步长] :范围就是[起始,结束),左闭右开
    • 起始默认值是0,结束默认值是len(name),步长默认1,步长>0从左往右
    
    name = 'abcdefg'
    print(name[0:len(name):1])
    print(name[::-1])
    print(name[-1:-5:-1])
    print(name[::])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    字符串的查找计算

    在这里插入图片描述

    • len:计算字符串的字符个数
    • len(name)
    name = 'woshini'
    print(len(name))
    
    • 1
    • 2

    在这里插入图片描述

    • find:查找子串索引(下标)位置
    • find(sub,start = 0,end=len(str))
    • start有个默认值是0,end不写也有个默认值
    • sub代表要检索的字符串,start代表检索的起始位置,end代表检索的结束操作,start和end都可以不写
    • 返回值:找到了返回值是个索引,整型;找不到的话返回-1,并且是从左往右查找[start,end)
    
    name = 'wo shi ni'
    print(len(name))
    print(name.find('n'))
    print(name.find('s'))
    print(name.find('s', 3, 7))
    print(name.find('i',0,5))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    • rfind:功能 同上,只不过是从右边开始往左寻找
    name = 'wo shi sz'
    print(name.find('s'))
    print(name.rfind('s'))
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • index:获取子串索引位置
    • index(sub,start=0,end=len(str))
    • sub要查找的字符串,start开始位置,默认为0,end结束位置,默认为len(str)
    • 它和find的区别就是它如果找不到就会报错异常
    name = 'wo shi sz'
    print(name.index('zz'))
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    • rindex:从右往左查找,查不到也会报错误
    • count:计算某个子字符串的出现个数
    • count(sub,start=0,end=len(str))
    name = 'wo shi szwo'
    name1 = 'wo shi sz'
    name2 = 'wo shi zz'
    print(name.count('wo'))
    print(name1.count('wo'))
    print(name2.count('zz'))
    print(name2.count('z'))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    字符串的转换操作
    在这里插入图片描述

    • replace:使用给定的新字符串来替换原来字符串中的旧字符串
    • replace(old,new,【count】)count用【】代表是可以忽略的;old代表需要被替换的字符串,new代表替换后新的字符串;count代表替换的个数,省略的话就代表全都替换;字符串的本身不会发生变化
    name = 'wo shi sz'
    print(name.replace('s','z'))
    print(name)
    print(name.replace('s','z',1))
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • capitalize:将字符串的首字母变为大写
    name = 'wo shi sz'
    print(name.capitalize())
    
    • 1
    • 2

    在这里插入图片描述

    • title:将字符串每个单词的首字母变成大写
    name = 'wo shi sz'
    print(name.title())
    
    • 1
    • 2

    在这里插入图片描述

    • lower:将字符串每个字符变成小写(用途就是用户输入y可以转换成Y待变yes)
    name = 'Wo Shi SZ'
    print(name.lower())
    
    • 1
    • 2

    在这里插入图片描述

    • upper:将字符串的每个字符变成大写
    name = 'wo shi SZ'
    print(name.upper())
    
    • 1
    • 2

    在这里插入图片描述

    字符串的分割拼接操作

    在这里插入图片描述

    • split:将一个大的字符串分割成几个子字符串
    • split(sep,maxsplit) sep是分隔符,按照什么来分割;maxsplit是最大分割次数,省略的话代表有多少就分割多少,返回值是分割后的子字符串组成的列表。
    info = 'lqz-2022-0531-6666'
    result = info.split('-')
    print(result)
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    比如说后面0531 6666是电话号码,我们不想让他们分开,那就利用第二个参数指定分割次数

    info = 'lqz-2022-0531-6666'
    result = info.split('-',2)
    print(result)
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    • partition:根据指定的分隔符,返回一个元组,元组里面是三部分,分别是分隔符左侧内容,分隔符,分隔符右侧内容

    划分的步骤就是从左往右寻找分隔符,找到第一个分隔符就开始分割,后面的分隔符就不再管了。
    对于没有找到分隔符的,也是分为3部分元组,只不过把整个式子都在第一个内容中了

    info = 'lqz-2022-0531-6666'
    result = info.partition('-')
    result1 = info.partition('|')
    print(result)
    print(result1)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    • rpartition:从右边开始找分隔符,找到后开始分割
    info = 'lqz-2022-0531-6666'
    result = info.rpartition('-')
    
    print(result)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • splitlines:可以把一个字符串给他分解为多行,分割的参照依据就是一些特别的换行符(\n,\r)
    • 其实就是不需要指定分隔符,内部有指定的分隔符
    • splitlines(keepends):里面的参数代表是否保持这个结束符,就是指是否保留换行符的意思,是个boolean类型的

    其中\r是回到句首的意思,当回到句首后,shi被zz覆盖了,所以原输出没有shi

    name = 'wo \n shi \r zz'
    info = name.splitlines()
    info1 = name.splitlines(True)
    print(info)
    print(info1)
    print(name)
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    • join:根据指定的字符串将给定的可迭代对象进行拼接,得到拼接后的字符串
    • 可迭代对象:凡是可以使用for循环遍历的都叫可迭代对象,比如字符串、元组、列表等等
    • ‘连接符’.join(iterable)
    items = ['11','22','33','abc']
    a = '-'.join(items)
    print(a)
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    字符串的填充压缩操作–或者叫字符串的宽展/缩小
    在这里插入图片描述

    • ljust:l就是代表原字符串靠左的意思,根据指定字符,将原字符串填充够指定长度
    • ljust(width,fillchar):width是指定结果字符串的长度,fillchar是填充的字符,只能是一个字符
    • 当指明的长度小于实际字符串的长度的时候,字符串不会有任何变化
    name = 'abc'
    print(name.ljust(6,'x'))
    
    • 1
    • 2

    在这里插入图片描述

    • rjust:r代表字符串靠右
    name = 'abc'
    print(name.rjust(6,'x'))
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    • center:填充之后,原来的字符串在后来填充好的字符串的中间,如果不够分的话,左边填充的字符串会少一点,右边填充的字符串会多一点
    name = 'abc'
    # print(name.rjust(6,'x'))
    print(name.center(6,'x'))
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • lstrip:从左侧开始移除所有的原字符串中指定的字符(默认为空白字符:\n \t tab 空格都是空白字符)表示仅仅只移除左侧
    • lstrip(char)char是默认要移除的字符
    • rstrip:从右侧开始移除

    最后两行,我们可以看出来对于要移除的字符wo不是说只移除wo这个组合字符,而是我、或者o,并且从左边开始移除,后面的就不管了,或者这样理解,从左边开始数,第一个字符不再要移除的字符内,后面的就不管了

    name = ' wo shi zzzw '
    print('|'+name+'|')
    print('|'+name.lstrip()+'|')
    print('|'+name.rstrip()+'|')
    
    name = 'wwwooo shi zz'
    print('|'+name.lstrip('wo')+'|')
    print('|'+name.rstrip('zw')+'|')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    )

    字符串的判定操作(结果都是Boolean类型)

    在这里插入图片描述

    • isalpha :判断字符串是否所有的字符都是字母(字母是指不包含该数字、特殊符号、标点符号等,并且至少有一个字符,不能是空串)
    name = 'sz'
    print(name.isalpha())
    name = 'sz1'
    print(name.isalpha())
    name = ''
    print(name.isalpha())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    • isdigit:判定字符串当中所有的字符都是数字
    name = '123'
    print(name.isdigit())
    name = '123a'
    print(name.isdigit())
    name = ''
    print(name.isdigit())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    • isalnum:判定字符串中是否所有的字符都是数字或者字母
    name = '123abc'
    print(name.isalnum())
    name = '123anc /'
    print(name.isalnum())
    name = ''
    print(name.isalnum())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    • isspace:判断字符串中是否所有的字符都是空白符,包括空格,缩进,换行等不可见的转义符
    name = ''
    print(name.isspace()) #这是一个空字符串
    name = ' '
    print(name.isspace())
    name = '\t'
    print(name.isspace())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    • startswith:判断一个字符串是否以某个前缀开头
    • startswith(prefix,start = 0,end = len(str))
      其中前缀代表要判定的前缀字符串,start是起始位置,在哪里寻找,end就是结束的位置,判定字符串在那个区间
    name = '2022-09-06:wqe.txt'
    print(name.startswith('2018'))
    name = '2022-09-06:wqe.txt'
    print(name.startswith('2022'))
    name = '2022-09-06:wqe.txt'
    print(name.startswith('2022',0,2))
    name = '2022-09-06:wqe.txt'
    print(name.startswith('2022',0,3)) #3的索引是后面那个2的位置,实际上也是取不到的,右边取不到
    name = '2022-09-06:wqe.txt'
    print(name.startswith('2022',0,4))
    name = '2022-09-06:wqe.txt'
    print(name.startswith('22',2,4)) #只能检测以**前缀开头
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    • endswith:判定一个字符串是否以某个后缀结尾

    • endswith(suffix,start = 0,end = len(str))

    • 比如说判定文件的结尾形式,以txt结尾还是xls结尾

    name = '2022-09-06:wqe.txt'
    print(name.endswith('txt'))
    
    • 1
    • 2

    在这里插入图片描述

    • 补充:in 和not in
    • in:判定一个字符串,是否被另一个字符串包含
    • not in:判定一个字符串,是否不被另一个字符串包含
    name = 'wo si abc'
    print('sz' in name)
    name = 'wo si sz'
    print('sz' in name)
    name = 'wo si sz'
    print('sz' not in name)
    name = 'wo si 123'
    print('sz' not in name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

  • 相关阅读:
    前端面试及答案:css 选择器有哪些?权重是什么样的?
    项目管理的核心:制定明确的项目进度计划
    常用的网络攻击手段
    C#,数值计算——插值和外推,Base_interp的计算方法与源程序
    nginx+keepalived 高可用项目实战
    HDFS集群NameNode高可用改造
    10月更新!又一波新功能上线,升级后的EasyOps®简直神了
    Redis缓存雪崩、击穿、穿透
    常见的服务器异常包括哪些?
    计算机是如何工作的(简单介绍)
  • 原文地址:https://blog.csdn.net/weixin_43872169/article/details/126684511