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

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

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

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

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

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

数字(int)


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

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

数字类型的方法

  • int()    强制类型转换,可以将字符串强制转换成数字,其中可以传参base按照特定进制读取,然后以十进制输出

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

字符串


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

  1. testStr1 = "hello1" #以双引号定义字符串
  2. testStr2 = 'hello2' #以单引号定义字符串
  3. testStr3 = '''hello3''' #以三引号定义字符串
  4. #进行打印,结果正常
  5. print(testStr1)
  6. print(testStr2)
  7. print(testStr3)

字符串类型的方法

  • .capitalize()   #让字符串首字母大写

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

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

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

    1. testStr1 = "name\tage\tblogs\nCodeScrew\t23\twww.cnblogs.com\codescrew\nCodeScrew\t23\twww.cnbolos.com\codescrew\n"
    2.  
    3. v1 = testStr1.expandtabs(20) #从前往后读,遇到\t停止,读到的值和\t宽度加起来等于20
    4. print(v1)
    5. #打印为以下
    6. # name age blogs
    7. # CodeScrew 23 www.cnblogs.com\codescrew
    8. # CodeScrew 23 www.cnbolos.com\codescrew
  • .isprintble    #判断字符串是否完全打印,比如有\t,\n这种字符的时候就是不能完全打印

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

    1. testStr1 = "i am codescrew"
    2.  
    3. v1 = testStr1.istitle() #判断字符串是否为标题
    4. print(v1)
    5.  
    6. testStr1 = testStr1.title() #将字符串转换成标题
    7.  
    8. v1 = testStr1.istitle() #判断字符串是否为标题
    9. print(v1)

    #打印结果为 FALSE  TRUE

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

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

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

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

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

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

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

    1. testStr1 = "i am codescrew"
    2.  
    3. v1 = testStr1.replace("codescrew","coder")
    4. print(v1) #输出i am coder

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

  1. Python基础之格式化输出、运算符、数字与布尔值互换以及while...else

    python是一天学一点,就这样零零碎碎…… 格式化输出 %是占位符,%s是字符串格式,%d整数格式,%f是浮点数格式 name = input('输入姓名') age = input('输入年龄') ...

  2. 第七篇Python基本数据类型之数字&字符串&布尔值

    数字 写在最前,必须要会的:int() 整型 Python3里无论数字多长都用int表示,Python2里有int和Long表示,Long表示长整型 有关数字的常用方法,方法调用后面都必须带括号() ...

  3. Python数据类型-01.数字和布尔值

    本节主要介绍Python中的基础知识中的数据类型,数字和布尔值 介绍几个知识点:1)内置函数print()的用法,直接打印括号里面的内容,或者print后跟多个输出,以逗号分隔.2)内置函数type( ...

  4. 下篇:python的基本数据类型以及对应的常用方法(列表、元组、字典、集合)

    为了日后便于查询,本文所涉及到的所有命令集合如下: python中的基本数据类型有数字.字符串.布尔值.列表.元组.字典.就像每一个职业有自己特定的技能,比如医生能看病,农民能种田,每种数据类型也有属 ...

  5. day03 python数据类型 数字 字符串 布尔

    day03 python   一.基本数据类型     1.int a= 8 a_length = a.bit_length()  #此方法求数字的二进制长度  print(a_length)     ...

  6. Python 6 数字和布尔值及字符串的基本功能

    数据类型:查看变量数据类型type(变量)  或者  print(type(变量)) 整数int:就是不带小数的自然数字,也叫整型.在2.X版本中还分为长整型和整形.但是在3.X版本中统一称为整数或整 ...

  7. 关于python中str数据类型的内置常用方法(函数)总结

    str基本数据类型常用功能 center(self,width,fllchar=none)                        内容居中,width表示总长度,fllchar表示空白处默认为 ...

  8. 【python基础语法】数字、布尔值(第1天课堂笔记)

    # 导入模块 import keyword # print语句将内容输出到控制台 print("hello world!") # pep8编码规范 # 代码快速格式化快捷键:ctr ...

  9. (八)python的简单数据类型和变量

    什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...

随机推荐

  1. 双击表,powerdesigner pdm 没有 comment列(no comment)

  2. python基础—迭代器、生成器

    python基础-迭代器.生成器 1 迭代器定义 迭代的意思是重复做一些事很多次,就像在循环中做的那样. 只要该对象可以实现__iter__方法,就可以进行迭代. 迭代对象调用__iter__方法会返 ...

  3. Spark:scala集合转化为DS/DF

    scala集合转化为DS/DF case class TestPerson(name: String, age: Long, salary: Double) val tom = TestPerson( ...

  4. QT 实现在QLabel上画图

    QT之所以不能再任意控件上绘图是因为QT的事件过滤器把控件的绘图事件给过滤了. 在paintevent()函数中,通常需要设置QPainter对象,创建QPainter对象的同时需要指定绘图设备,即继 ...

  5. jquery checkbox勾选/取消勾选checked属性不生效问题

    http://www.cnblogs.com/KeenLeung/p/3799895.html

  6. Idea导入多个maven项目到同一目录下

    目标 简单导入多个maven项目进入同一个project(相当于eclipse的workspace) 过程 1.新建一个目录作为仿eclipse的workspace,这里起名为idea-workspa ...

  7. [Codeforces 864A]Fair Game

    Description Petya and Vasya decided to play a game. They have n cards (n is an even number). A singl ...

  8. [NOI 2016]区间

    Description 在数轴上有 $n$ 个闭区间 $[l_1,r_1],[l_2,r_2],...,[l_n,r_n]$.现在要从中选出 $m$ 个区间,使得这 $m$ 个区间共同包含至少一个位置 ...

  9. [HEOI2015]小Z的房间

    Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. ...

  10. bzoj3944Sum

    3944: Sum Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 5149  Solved: 1385[Submit][Status][Discuss ...