• 上篇:python的基本数据类型以及对应的常用方法(数字、字符串、布尔值)


    为了日后便于查询,本文所涉及到的必记的基本字符串方法如下:

    ”分隔符“.join(字符串)    #将字符串的每一个元素按照指定分隔符进行拼接
    .split("字符串",刀数) #指定字符串从前往后进行分割,切几刀,分出的份数为刀数+1,不包含分隔符
    .find("子字符串",开始位置,结束位置)  #查找子字符串的位置,从前往后找,前开区间,后闭区间,获取其位置,第一个是0
    .strip(”字符串“)    #不传参的情况下删除字符串中首尾的空白 (空格、换行、制表符),传参情况下就删除对应的传参,遵循不断匹配的原则
    .upper()   #让字符串变大写
    .lower()    #让字符串变小写
    .replace("原值","新值",次数)   #将字符串中的原值替换成新值,从前往后替换,替换指定次数

    字符串相关必会的常规操作

    testStr1 = "i am codescrew"
    
    #拿指定某个字符
    v1 = testStr1[0]  #0为索引,得到第0个字符为i
    
    #拿一定范围的字串,也被称为切片
    v2 = testStr1[0:3] #0为开始位置,3为结束位置,得到的字符为i a,取头不取尾
    v3 = testStr1[0:-1] #0为开始位置,-1为结束位置,指的最后一个,得到的字符为i am codescre,取头不取尾
    
    #计算字符串长度
    v4 = len(testStr1)   #python3中算字符,python2算字节
    
    #依次打印字符串的每一个元素
    for item in testStr1:
        print(item)
    #将文字对应的索引打印出来
    testStr2 = input(">>>")
    for index in range(0,len(testStr2)):
    print(index,testStr2[index])

    python中的基本数据类型有数字、字符串、布尔值、列表、元组、字典。就像每一个职业有自己特定的技能,比如医生能看病,农民能种田,每种数据类型也有属于自己的技能,我们把他们的技能称为方法。

    现在就开始介绍这几种基本数据类型以及他们常用到的方法

    数字(int)


     数字就是平常所说的数字,可以进行加减乘除运算,一般的定义为

    test  = 10   #定义一个值为10的数字

    数字类型的方法

    • int()    强制类型转换,可以将字符串强制转换成数字,其中可以传参base按照特定进制读取,然后以十进制输出
      1 testStr = "10101"  #定义一个数字型的数组串
      2 print(int(testStr,base = 2))    #按照二进制进行读取,然后转换为十进制
      3 #结果为21
    • .bit_length()   计算出该数字转换成二进制后至少占几位
      1 testInt = 10  #定义一个数字变量
      2 print(testInt.bit_length())    #计算其转换为二进制后至少占几位
      3 #结果为4,10转换为二进制为1010

    字符串


     字符串在定义上通常以引号包围,其在内存中是固定的,不能被修改,如果进行修改,本质上是在内存开辟了新的字符串,常见的定义如下。这三种定义并没有本质上的区别

    testStr1 = "hello1"   #双引号定义字符串
    testStr2 = 'hello2'    #单引号定义字符串
    testStr3 = '''hello3'''    #三引号定义字符串
    #进行打印,结果正常
    print(testStr1)
    print(testStr2)
    print(testStr3)

    字符串类型的方法

    •  .capitalize()   #让字符串首字母大写
      #使用案例如下
      testStr1 = "hello"
      testStr2 = testStr1.capitalize()
      print(testStr2)
      #结果打印为Hello
    • .swapcase()   #让字符串大写变小写,小写变大写
    • .upper()   #让字符串变大写
    • .lower()    #让字符串变小写
    • .casefold()   #让字符串变小写,但是其支持更多的语言,如果拉丁语中的大小写,lower只能支持英文
      testStr1 = "HELLO"
      testStr2 = testStr1.lower()
      testStr3 = testStr1.casefold()
      print(testStr2)
      print(testStr3)
      #两句打印的结果都为hello
    • .center(总宽度,"字符")   #设置宽度并将内容居中,第一个参数为总宽度,第二个参数为填充字符,可传可不传,默认为空格,内容在中间
      .ljust(总宽度,"字符")   #设置宽度并将内容居中,第一个参数为总宽度,第二个参数为填充字符,可传可不传,默认为空格,内容在左边
      .rjust(总宽度,"字符")   #设置宽度并将内容居中,第一个参数为总宽度,第二个参数为填充字符,可传可不传,默认为空格,内容在右边
      testStr1 = "hello"
      
      v1 = testStr1.center(20)
      print(v1)   #打印结果为       hello        
      
      v2 = testStr1.center(20,"*")
      print(v2)   #打印结果为*******hello********
    • .count("要查找的字串",开始位置,结束位置)
        #查找子字符串出现的次数,第一个参数为起始位置,第二个参数为结束位置,两个参数可有可无
      testStr1 = "hellohello"
      
      v1 = testStr1.count("ll")  #查找字符串中包含几个"ll"
      print(v1)   #打印结果为2
      
      v2 = testStr1.count("ll",5) #从第五个开始查找字符串中包含几个"ll"
      print(v2)   #打印结果为1
      
      v3 = testStr1.count("ll",5,6) ##从第五个开始,第六个结束,查找字符串中包含几个"ll"
      print(v3)   #打印结果为0
    • .endswith(”字符串“)  #判断是否以传参的字符串结尾,返回值为布尔

    • .startwith("字符串")  #判断是否以传参的字符串开头,返回值为布尔
      testStr1 = "hellohello"
      
      v1 = testStr1.endswith("llo")  #判断字符串是否以"llo"结尾
      print(v1)   #打印结果为True
      
      v2 = testStr1.startswith("ll") #判断字符串是否以"ll"开头
      print(v2)   #打印结果为False
    • .find("子字符串",开始位置,结束位置)  #查找子字符串的位置,从前往后找,前开区间,后闭区间,获取其位置,第一个是0
      testStr1 = "helloworld"
      
      v1 = testStr1.find("llo")  #查找子字符串"llo"在字符串的位置
      print(v1)   #打印结果为2
      
      v2 = testStr1.find("ll",5,6) #从第五个开始,第六个结束,查找子字符串"llo"在字符串的位置
      print(v2)   #打印结果为-1,说明没找到
    • .format(占位符 = 要替换的值)  #格式化,将字符串的占位符替换为指定的值
      testStr1 = "i am {name},age = {a}"  #占位符有命名的情况
      
      v1 = testStr1.format(name = "CodeScrew",a = 23)  #进行替换操作
      print(v1)   #打印结果为i am CodeScrew,age = 23
      
      testStr2 = "i am {0},age = {1}" #占位符无命名的情况
      
      v2 = testStr2.format("CodeScrew",23)  #进行替换操作
      print(v2)   #打印结果为i am CodeScrew,age = 23
    • .format_map(字典)  #格式化,传参为字典

      testStr1 = "i am {name},age = {a}"  #占位符有命名的情况
      
      v1 = testStr1.format_map({"name":"CodeScrew","a":23})  #进行替换操作,传参为字典类型
      print(v1)   #打印结果为i am CodeScrew,age = 23
    • .isalnum()    #判断字符串中是否只含有数字和字母
      .isalpha()     #判断字符串中是否只含有字母
      .isdecimal() 
        #判断字符串中是否只含有数字
      .isdigit()    #判断字符串中是否只含有数字,除了可以判断阿拉伯数字之外,还可以判断特殊字符的数字,比如"Ⅱ"
      .isnumeric()    #判断字符串中是否只含有数字,除了可以判断阿拉伯数字和特殊字符的数字之外,这个可以判断中文的数字,比如"二"
      .isidentifier()    #判断字符串是否满足标识符的标准,既只含有数字、字母、下划线,并且不能数字打头
      .isspace()    #判断字符串是否全部都是空格
      .istitile()    #判断字符串是否为一个标题,既每一个单词的首字母都是大写
      testStr1 = "IamCodeScrew"
      
      v1 = testStr1.isalnum()  #判断字符串中是否只含有数字和字母
      print(v1)   #打印结果为True
      
      testStr2 = "I am CodeScrew"
      
      v2 = testStr2.isalnum()  #判断字符串中是否只含有数字和字母
      print(v2)   #打印结果为i am CodeScrew,age = 23
    • .expandtabs(总宽度)     #用来字符对齐,可以用来做表格,断句用

      testStr1 = "name	age	blogs
      CodeScrew	23	www.cnblogs.comcodescrew
      CodeScrew	23	www.cnbolos.comcodescrew
      "
      
      v1 = testStr1.expandtabs(20)  #从前往后读,遇到	停止,读到的值和	宽度加起来等于20 
      print(v1)   
      #打印为以下
      # name                age                 blogs
      # CodeScrew           23                  www.cnblogs.comcodescrew
      # CodeScrew           23                  www.cnbolos.comcodescrew
    • .isprintble    #判断字符串是否完全打印,比如有 , 这种字符的时候就是不能完全打印

      testStr1 = "Code"
      
      v1 = testStr1.isprintable()  #判断可否字符串全可见
      print(v1)
      
      testStr2 = "Co	de"
      
      v2 = testStr2.isprintable()  #判断可否字符串全可见
      print(v2)
      #打印结果为 True False
    • .title()   #将字符串转换成标题,既将每一个字母的首字母换成大写

      testStr1 = "i am codescrew"
      
      v1 = testStr1.istitle()  #判断字符串是否为标题
      print(v1)
      
      testStr1 = testStr1.title()  #将字符串转换成标题
      
      v1 = testStr1.istitle()  #判断字符串是否为标题
      print(v1)

      #打印结果为 FALSE  TRUE

    • ”分隔符“.join(字符串)    #将字符串的每一个元素按照指定分隔符进行拼接

      testStr1 = "我是代码螺丝钉"
      
      v1 = "*".join(testStr1)  #将每一个元素以*号进行凭借
      print(v1)
      #打印结果为我*是*代*码*螺*丝*钉
    • .lstrip("字符串")   #不传参的情况下删除字符串左边的空白 (空格、换行、制表符),传参情况下就删除对应的传参,遵循不断匹配的原则
    • .rstrip(”字符串“)   #不传参的情况下删除字符串右边的空白 (空格、换行、制表符),传参情况下就删除对应的传参,遵循不断匹配的原则
    • .strip(”字符串“)    #不传参的情况下删除字符串中首尾的空白 (空格、换行、制表符),传参情况下就删除对应的传参,遵循不断匹配的原则
      testStr1 = "iamCodeScrew"
      v1 = testStr1.rstrip("ewScr")  #从右边开始进行最大匹配,匹配上就删除
      print(v1)
      #输出iamCod
      #这里是最大匹配原则,首先ew发现存在,删除之后变成iamCodeScr
      #然后发现Scr存在,变成iamCode
      #然后发现e存在,变成iamCod
      
      testStr2 = "***i am CodeScrew***"
      v2 = testStr2.strip("*")  #去除字符串中首尾的*号
      print(v2)
      #打印输出i am CodeScrew
    • m = str.maketrans("字符串1",”字符串2“)   #建立字符串1和字符串2的对应关系,比如字符串1为"aeiou",字符串2为"12345",对应关系就是a对1,e对2,以此类推
      .translate(m)   #以建立的对应关系将我们自己的字符串中的值进行对应的替换

      testStr1 = "iamCodeScrew"
      v1 = str.maketrans("aeiow","12345")  #建立对应替换关系
      new_testStr1 = testStr1.translate(v1)  #对字符串testStr1中的字符进行对应关系替换
      print(new_testStr1)
      #输出31mC4d2Scr25
      #原因是i被替换成了3,a被替换成了1  以此类推
      
      
    • .partition("字符串")    #以指定字符串为分隔符从前往后进行分割,这个函数默认分成3份,包含分隔符

      .rpartition("字符串") #以指定字符串从后往前进行分割,这个函数默认分成3份,包含分隔符

      .split("字符串",刀数) #指定字符串从前往后进行分割,切几刀,分出的份数为刀数+1,不包含分隔符

      .rsplit("字符串",刀数) #指定字符串从后往前进行分割,切几刀,分出的份数为刀数+1,不包含分隔符

      testStr1 = "erwerwsbgfgbsbfbfbstioisvr"
      
      v1 = testStr1.partition("s")  #以s为分隔符从前往后进行分割,这个函数默认分成3份,包含分隔符
      print(v1)  #输出为('erwerw', 's', 'bgfgbsbfbfbstioisvr')
      v1 = testStr1.rpartition("s") #s为分隔符从后往前进行分割,这个函数默认分成3份,包含分隔符
      print(v1)  #输出为('erwerwsbgfgbsbfbfbstioi', 's', 'vr')
      
      v1 = testStr1.split("s",0)    #s为分隔符从前往后进行分割,切0刀,也就是不分割,不包含分隔符
      print(v1)   #输出为['erwerwsbgfgbsbfbfbstioisvr']
      v1 = testStr1.rsplit("s",2)    #s为分隔符后往前进行分割,切2刀,分3份,不包含分隔符
      print(v1)   #输出为['erwerwsbgfgbsbfbfb', 'tioi', 'vr']
    • .splitlines(布尔值)   #指定以 为分隔符进行分割,传参为真保留换行符,不传参舍弃换行符
      testStr1 = "erwerw
      sbgfgbsbfb
      fbstioisvr"
      
      v1 = testStr1.splitlines()
      print(v1)   #输出为['erwerw', 'sbgfgbsbfb', 'fbstioisvr']
    • .replace("原值","新值",次数)   #将字符串中的原值替换成新值,从前往后替换,替换指定次数

      testStr1 = "i am codescrew"
      
      v1 = testStr1.replace("codescrew","coder")
      print(v1)  #输出i am coder
  • 相关阅读:
    UltraISO写入时提升硬盘映像容量太小
    Ubuntu下查找某个文件属于哪个包
    2012 Server R2安装VMware Tool出现KB2919355的代码
    vCenter通过模板部署虚拟机
    Ubuntu配置IP地址
    记一次flex布局中子项目尺寸不受flexshrink限制的问题
    注解@Async的使用 Roy
    异步任务 :无返回值 和有返回值 Roy
    hibernate得到数据后会自动更新到数据库
    ksmtuned占用CPU高
  • 原文地址:https://www.cnblogs.com/codescrew/p/8634178.html
Copyright © 2020-2023  润新知