Python学习之str 以及常用的命令

目录
  • str 字符串
  • str 里有一些常用的命令
    • 1、capitalize
    • 2、casefold和lower
    • 3、center
    • 4、count
    • 5、endswith和startswith
    • 6、expandtabs
    • 7、find
    • 8、format
    • 9、format_map
    • 10、isalnum
    • 11、isalpha
    • 12、isdecimal、isdigit、isnumeric
    • 13、isidentifier
    • 14、islower、lower、isupper、upper
    • 15、isprintable
    • 16、isspace
    • 17、istitle、title
    • 18、join
    • 19、ljus、rjust、center、zfill
    • 20、lstrip 、rstrip、strip
    • 21、translate、maketrans
    • 22、partition、rpartition、split、rsplit、splitlines() 、splitlines(True) 、splitlines(Fales)
    • 23、swapcase
    • 24、replace
  • 总结

str 字符串

例如:

name = "adam"
name1 = "周大福"

命令语句的条件参数配置格式

center(self,width,fillchar= None)

self:可以直接忽略

width:必须有参数

fillchar= None:可以不用单独设置参数

凡有参数 = None的 都可以理解为 可以不用单独设置此参数

str 里有一些常用的命令

1、capitalize

首字母大写

name = "adam"
v = name.capitalize()	#name内的字符串首字母大写
print(type(v),v)

2、casefold和lower

所有变小写

name = "aDam"
v = name.casefold()	#name内的字符串变成小写(它可以处理不同的语种内的字母大小写)
print(type(v),v)
name = "aDam"
v2 = name.lower()	#name内的字符串变成小写(它只能处理英文)
print(type(v2),v2)

3、center

设置字符串长度并将内容剧中,空白位置进行填充并且何可设置填充的符号默认填充空格

name = "adam"
v = name.center(25,"+")		#在name赋值的字符串的前后各增加加号 ,使得整体字符串占一共有8个字符之前name的赋值字符串剧中,并且赋值给v
print(type(v),v)

4、count

寻找字符串中的子序列或字符出现的次数,并可以设置起始的寻找位数

name = "adam"
v = name.count('a',2,4) #计算a在name赋值的字符串内 出现过多少次,不写(,2,4)的话默认是冲头到位找,写了就是从地2到4位寻找
print (v)

5、endswith和startswith

endswith 判断结尾的字符是什么 可以设置 起始位置

startswith 判断开头的字符是什么 可以设置 起始位置 注意设置的开始位置要前移一个单位

name = "adam"
v = name.endswith('d',1,2) #判断 name赋值的字符串 从第一个字符到第二个字符结束 结尾的字母是不是d
v1 = name.startswith('a',0,2)#判断name赋值的字符串,从第0位到第2位 是不是以 字母a开头
print (v)
print (v1)

6、expandtabs

将\t 前面字符位数用空格补至x位 ,如\t 前字符位数等于x 则 直接用x个空格替换\t 如\t前字符位数大于x 则在前面字符最末尾补x余数个空格(输出结果不再显示\t)

test = '12345\t6789'
v = test.expandtabs(8)
v1 = test.expandtabs(3)
v2 = test.expandtabs(5)
print(v)
print(v1)
print(v2)
#应用实例:
test = '姓名\t性别\t身高\n张三\t男\t180\n张三\t男\t180\n张三\t男\t180'
v = test.expandtabs(10)
print(v)

7、find

从头往后找到第一个子序列获取其前面有多少个字符,也可以规定寻找范围,设定的搜索范围逻辑关系位 起始位数 <= 被搜索范围 <结束位置。

name = "adamadamadam"	#创建变量name并赋值adamadamadam
v = name.find('ma',6,9) 	#设定搜索ma子序列从6到8位
print (v)	#显示v的值
#结果为:7

PS:当find找不到目标子序列的时候会赋值位-1而另一个寻找命令index在找不到目标子序列时会直接程序报错,所以推荐使用find命令

8、format

格式化,将一个字符串中的占位符替换为指定的值“大括号内的就是占位符”

name = "adam"	#创建变量name并赋值为adam
xingBie = "男"	#创建变量xingBie并赋值为"男"
xianShi = "I am {name1},{xingBie1}" 	#创建变量xianShi并赋值为"I am {name1},{xingBie1}"
print(xianShi)	#显示xianShi
#结果:I am {name1},{xingBie1}
v = xianShi.format(name1 = name ,xingBie1 = xingBie) #使用变量name和xingBie替换xianShi变量中的name1和xingBie1,并且赋值给v
print(v)	#显示v
#结果:I am adam,男

format的另一种书写格式,可以使用数字占位,并且在赋值的时候程序会默认依次对数字赋值,创建占位符号时需要从0开始使用数字占位

name = "adam"	#创建变量name并赋值为adam
xingBie = "男"	#创建变量xingBie并赋值为"男"
xianShi = "I am {0},{1}" #创建变量xianShi并赋值为"I am {0},{1}"
print(xianShi)	#显示xianShi
#结果:I am {0},{1}
v1 = xianShi.format(name ,xingBie) #使用变量name 和 xingBie的值替换xianShi中的 0 和 1的值,并且赋值给v1
print(v1) #显示v1
#结果:I am adam,男

9、format_map

(字典)。。。。。

name = "adam"	#创建变量name并赋值为adam
xingBie = "男"	#创建变量xingBie并赋值为"男"
xianShi = "I am {name1},{xingBie1}" 	#创建变量xianShi并赋值为"I am {name1},{xingBie1}"
print(xianShi)	#显示xianShi
v = xianShi.format(name1 = name ,xingBie1 = xingBie) #使用变量name和xingBie替换xianShi变量中的name1和xingBie1,并且赋值给v
print(v)	#显示v
#结果:I am adam,男
v1 = xianShi.format_map({'name1':name,'xingBie1':xingBie})	#使用format_map的格式给v1赋值
print(v1)	#显示v1
#结果:I am adam,男

10、isalnum

判断字符串中是否只有字母 或 数字,输出布尔值

name = 'adam123'   #给变量name赋值adam
name1 = 'adam+'   #给name1赋值adam+
name2 = 'adam'
name3 = '123'
v = name.isalnum()   #判断name中是否只含有字母或数字,并把布尔值赋值给v
v1 = name1.isalnum()    #判断name1中是否只含有字母或数字,并把布尔值赋值给v1
v2 = name2.isalnum()
v3 = name3.isalnum()
print(v)
print(v1)
print(v2)
print(v3)

11、isalpha

判断字符串中是否只含有字母 或 汉字,输出布尔值

name = 'adam123'   #给变量name赋值adam123
name1 = 'adam+'   #给name1赋值adam+
name2 = 'adam'   #给name2赋值adam
name3 = '张三'    #给name3赋值张三
v = name.isalpha()
v1 = name1.isalpha()
v2 = name2.isalpha()
v3 = name3.isalpha()
print(v)
print(v1)
print(v2)
print(v3)

12、isdecimal、isdigit、isnumeric

他们时用来判断字符串是否只是数字输出布尔值

isdecimal :只能判断阿拉伯数字为 真 (推荐用这个比较准)

isdigit:阿拉伯数字和符号数“123和③” 为真

isnumeric:阿拉伯数字、符号数字、罗马数字、汉字数,均为真“123、③、Ⅲ、四”

test1 =  '123'  #赋值
test2 = '1a'    #这个也可以是16进制数
test3 = '②'    #符号数字 ②
test4 = 'Ⅲ' #罗马数字3,这是一个字符
test5 = '四'    #汉字数字四
vecimal1 = test1.isdecimal()    #判断字符串是否为数字
vecimal2 = test2.isdecimal()
vecimal3 = test3.isdecimal()
vecimal4 = test4.isdecimal()
vecimal5 = test5.isdecimal()
vigit1 = test1.isdigit()    #判断字符串是否为数字
vigit2 = test2.isdigit()
vigit3 = test3.isdigit()
vigit4 = test4.isdigit()
vigit5 = test5.isdigit()
vnumeric1 = test1.isnumeric()
vnumeric2 = test2.isnumeric()
vnumeric3 = test3.isnumeric()
vnumeric4 = test4.isnumeric()
vnumeric5 = test5.isnumeric()
print(vecimal1, vecimal2, vecimal3, vecimal4, vecimal5)  #打印isdecimal判断的结果
print(vigit1, vigit2, vigit3, vigit4, vigit5)  #打印isdigit判断的结果
print(vnumeric1, vnumeric2, vnumeric3, vnumeric4, vnumeric5)

13、isidentifier

测试字符串是不是以 字母数字下划线组成并且不以字母或下划线开头

PS:这个命令不会因为 字符串是python的关键字 就判断为假

print( "if".isidentifier() )
print( "def".isidentifier() )
print( "class".isidentifier() )
print( "_a".isidentifier() )
print( "中国123a".isidentifier() )
print( "123".isidentifier() )
print( "3a".isidentifier() )
print( "".isidentifier() )

14、islower、lower、isupper、upper

islower 判断字符串是否全部为小写

lower 把字符串内所有字符所有字符变成小写

isupper 判断字符串是否全部为大写

upper 把字符串内所有字符所有字符变成大写

name = 'Adam'
name1 = 'ADAM'
name2 = 'adaM'
name3 = 'aDam'
v = name.islower()
v1 = name1.islower()
v2 = name2.islower()
v3 = name3.islower()
print('Adam',v,'ADAM',v1,'adaM',v2,'aDam',v3)
x = name.lower()
x1 = name1.lower()
x2 = name2.lower()
x3 = name3.lower()
print('Adam',x,'ADAM',x1,'adaM',x2,'aDam',x3)
n = name.isupper()
n1 = name1.isupper()
n2 = name2.isupper()
n3 = name3.isupper()
print('Adam',n,'ADAM',n1,'adaM',n2,'aDam',n3)
k = name.upper()
k1 = name1.upper()
k2 = name2.upper()
k3 = name3.upper()
print('Adam',k,'ADAM',k1,'adaM',k2,'aDam',k3)

15、isprintable

判断字符串中是否含有不可见或不可打印的 字符比如 \n \t 等

print('\tabc'.isprintable())
print('abc\n'.isprintable())
print('\tabc\n'.isprintable())
print('abc'.isprintable())

16、isspace

判断字符串是否全部都是空格

test = '  '
test1 = '  a'
test2 = ' a '
test3 = ''
v = test.isspace()
v1 = test1.isspace()
v2 = test2.isspace()
v3 = test3.isspace()
print(v,v1,v2,v3)    #True False False False

17、istitle、title

istitle 判断是否为标题(所有单词首字母均为大写)

title 将字符串转换成标题也就是把所有字母的 首字母转换成大写

test = 'wo shi zhang san , wo ba sui le '
v = test.istitle()
print(v)    #False
v1 = test.title()
print(v1)    #Wo Shi Zhang San , Wo Ba Sui Le
v2 = v1.istitle()
print(v2)    #True

18、join

在字符与字符 中间加上 设置好的间隔符当变量值中只有一个字符的时候则什么都不做,可以设置添加的符号

test = '我是张三,我八岁了'
test1 = '我'
print(test) #我是张三,我八岁了
x = ' '
v = x.join(test)
print(v)    #我 是 张 三 , 我 八 岁 了
v1 = x.join(test1)
print(v1)    #我

19、ljus、rjust、center、zfill

ljust 字符串靠左对齐 不够位数的用设置的字符补齐

rjust 字符串靠右对齐 不够位数的用设置的字符补齐

center 字符串剧中对齐 不够位数的用设置的字符补齐,如果只需要补1个字符,则补在字符串左侧

zfill 只能在字符串左侧填充0

name = 'adam'
v = name.ljust(6,'*') #文字左对齐 不至6位用*补位
v1 = name.rjust(6,'*') #文字右对齐 不至6位用*补位
v2 = name.center(6,'*')  #文字剧中 不至6位用*补位
v3 = name.zfill(6)    #文字右对齐 不至6位用*补位
print(v,v1,v2,v3)  #adam** **adam *adam* 00adam

20、lstrip 、rstrip、strip

lstrip 从左向右匹配删除空格,直到遇到不匹配的那个字符

rstrip 从右向左匹配删除空格,直到遇到不匹配的那个字符

strip 去掉两侧的空格

PS:他们还可以去掉 /t /n这样的功能符(默认下),还可以指定去掉任意字符,匹配原则是 优先最多匹配原则

name = ' ad am '
v = name.lstrip()     #去掉左侧的空格直到遇到其他字符
v1 = name.rstrip()    #去掉右侧的空格直到遇到其他字符
v2 = name.strip()     #去掉两侧的空格直到遇到其他字符
print(v)    #ad am
print(v1)   # ad am
print(v2)   #ad am

21、translate、maketrans

translate:执行映射转换

maketrans:创建映射转换关系,先写入原字符表,再写入要转换成的字符表,也可以再定义一个需要删除的字符表

yuanZiFu = 'abcde'	#定义原始匹配字符
bianGengZiFu = '12345'	#定义匹配后变更的字符
shanChuZiFu = 'fghij'  #定义原始匹配删除的字符
zhuanHuanBiao = str.maketrans(yuanZiFu,bianGengZiFu)	#创建字符映射转换表(匹配yuanZiFu转换成bianGengZiFu)
zhuanHuanShanChuBiao = str.maketrans(yuanZiFu,bianGengZiFu,shanChuZiFu)	#创建字符映射转换删除表(匹配yuanZiFu转换成bianGengZiFu删除shanChuZiFu)
yuanShiZiFuChuan = 'a1b2c3d4e5fagbhcidje' 	#创建原始字符串
print(yuanShiZiFuChuan.translate(zhuanHuanBiao))    #1122334455f1g2h3i4j5
print(yuanShiZiFuChuan.translate(zhuanHuanShanChuBiao))    #112233445512345

22、partition、rpartition、split、rsplit、splitlines() 、splitlines(True) 、splitlines(Fales)

partition 把字符串分割为3份 从字符串的左侧向右寻找 设置的分隔符号 进行分割,分割符号会被单独分割成中间的那部分

rpartition 把字符串分割为3份 从字符串的右侧向左寻找 设置的分隔符号 进行分割,分割符号会被单独分割成中间的那部分

ps partitionrpartition需要设置分割符

split 可以指定分割的块数 左侧向右寻找分割符号 默认是匹配的所有分割符号 全部都进行分割 且分割符号并不会出现在结果中

rsplit 可以指定分割的块数 右侧向左寻找分割符号 默认是匹配的所有分割符号 全部都进行分割 且分割符号并不会出现在结果中

ps:分割符默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

splitlines() 默认根据换行符号\n 进行分割 且不会保留换行符号

splitlines(True) 根据换行符号\n 进行分割 且保留换行符号 换行符号出现在被分割模块的右侧splitlines(Fales) 根据换行符号\n 进行分割 且不会保留换行符号

x1 = '123\n45\t123\n45\t123\n45\t123\n45'
print(x1.partition('5'))    #('123\n4', '5', '\t123\n45\t123\n45\t123\n45')
print(x1.rpartition('5'))   #('123\n45\t123\n45\t123\n45\t123\n4', '5', '')
print(x1.split('\n',3))   #['123', '45\t123', '45\t123', '45\t123\n45']
print(x1.rsplit('\t',2))  #['123\n45\t123\n45', '123\n45', '123\n45']
print(x1.splitlines())  #['123', '45\t123', '45\t123', '45\t123', '45']
print(x1.splitlines(True))  #['123\n', '45\t123\n', '45\t123\n', '45\t123\n', '45']
print(x1.splitlines(False)) #['123', '45\t123', '45\t123', '45\t123', '45']

23、swapcase

大小写转换 ,把字符串里面的大小写全部转换

name = 'Adam'
v = name.swapcase()
print(v)    #aDAM

24、replace

替换,从左往右寻找匹配的子序列,然后全部进行替换,可以设定替换几个,("原变量中的子序列","替换后的子序列",替换几个子序列)

name = 'adamadamadam'
v = name.replace('da','yyy')
print(v)    #ayyymayyymayyym

PS:匹配原则最长公共子序列 两个或多个字符串内 最长的相同的子序列

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python画图常用命令大全(详解)

    matplotlib官网 matplotlib库默认英文字体 添加黑体('SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'] 1. 简单例程柱状图 基本方法:matplotlib.pyplot.bar() 基本参数:bar(x,y) 其他参数:颜色color        宽度width        透明度alpha 其他方法:图例legend()        横轴定义xlable()        纵轴定义ylable(

  • Python 中 f-Strings 的作用

    目录 1.变量名 2.直接改变输出结果 3.直接格式化日期 4.2/8/16 进制输出真的太简单 5.格式化浮点数 6.字符串对齐 7.使用 !s,!r 8.自定义格式 学过 Python 的朋友应该都知道 f-strings 是用来非常方便的格式化输出的,觉得它的使用方法无外乎就是 print(f'value = { value }',其实,f-strings 远超你的预期,今天来梳理一下它还能做那些很酷的事情. 1.变量名 str_value = "hello,python coders&q

  • python 命令行传参方法总结

    argparse1 import argparse import sys FLAGS = None def main(): print(FLAGS.data_dir) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--data_dir', type=str, default='input_data', help='Directory for storing input data

  • 整理Python中常用的conda命令操作

    1 conda介绍 conda是一个python的包管理器,用来管理.安装.更新python的包和相关的依赖.另外,conda可以为特定任务创建独立的环境,每个环境中可以只安装需要用到的包和依赖,还可以将环境导出成yml文件,然后别人可以通过你导出的yml文件可以创建一样的环境. 1.1 查看版本 conda -V #或 conda info 1.2 更新到当前版本 conda update conda 1.3 查看某个命令帮助文档 conda [command] --help 例如conda

  • Python中str.format()方法的具体使用

    目录 1. 术语说明 2. 简单字段名 2.1 简单字段名的说明 2.2 省略字段名 2.3 数字形式的简单字段名 2.4 变量名形式的简单字段名 2.5 简单字段名的混合使用 2.6 使用元组和字典传参 3. 复合字段名 3.1 复合字段名的说明 3.2 . 点号的使用 3.3 [] 方括号的使用 4. 转换字段 5. 格式说明符 5.1 标准格式说明符的格式 5.2 填充与对齐方式 5.3 正负号 5.4 # 号 5.5 最小宽度 5.6 分组选项 5.7 精度 5.8 类型码 5.8.1

  • python str()如何将参数转换为字符串类型

    str()将参数转换为字符串类型 a = 26 print('我有'+str(a)+'个苹果') 输出:我有26个苹果 Python值被转换成字符串的两种机制 初学Python时可以发现,所有通过Python打印的字符串是被引号括起来的.而通过print语句打印则没有. 原因: Python打印值得时候,会保持该值在Python代码中的状态,而不是你希望用户所看到的状态.而通过print语句打印则是用户希望看到的状态. 例如: # 直接打印 >>> "Hello, world!

  • Python学习之str 以及常用的命令

    目录 str 字符串 str 里有一些常用的命令 1.capitalize 2.casefold和lower 3.center 4.count 5.endswith和startswith 6.expandtabs 7.find 8.format 9.format_map 10.isalnum 11.isalpha 12.isdecimal.isdigit.isnumeric 13.isidentifier 14.islower.lower.isupper.upper 15.isprintable

  • Python学习之12个常用基础语法详解

    目录 前言 1.多个字符串组合为一个字符串 2.字符串拆分为子字符串列表 3.统计列表中元素的次数 4.使用try-except-else-block模块 5.使用枚举函数得到key/value对 6.检查对象的内存使用情况 7.合并字典 8.计算执行一段代码所花费的时间 9.列表展开 10.列表采样 11.数字化 12.检查列表元素的唯一性 前言 前几天写了一篇关于python高级语法的文章:python进阶从青铜到王者一定会用上的Python技巧. 有读者私信说:怎么看自己是不是入门pyth

  • Python学习之str重要函数

    目录 一.6个非常重要的str处理词 二.重要的str处理 几乎所有的 数据类型里也都能用 1.提取字符串中 特定位置的字符 2.len 得到当前变量的字符串中有几个字符 3.range 创建连续的数字 总结 一.6个非常重要的str处理词 1.join添加分隔符号 其他类型的数据也可能用到这个 2.split 分割 3.find 查询匹配子序列位置 4.strip 去掉 5.upper 大写 6.lower 小写 7.replace 替换 二.重要的str处理 几乎所有的 数据类型里也都能用

  • 总结用Pdb库调试Python的方式及常用的命令

    用Pdb调试有多种方式 使用 Pdb调试 Python的程序的方式主要是下面的三种!下面逐一介绍 命令行加-m参数 命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的第一行之前 本文接下来重点讲到的实例展示就是使用这种方式进行调试的! python -m pdb testPdb.py 在python交互环境调试 >>> import pdb >>> import testPdb >>> pdb.run('testPd

  • Python学习之字符串常用操作详解

    目录 1.查找字符串 2.分割字符串 3.连接字符串 4.替换字符串 5.移除字符串的首尾字符 6.转换字符串的大小写 7.检测字符串(后续还会更新) 1.查找字符串 除了使用index()方法在字符串中查找指定元素,还可以使用find()方法在一个较长的字符串中查找子串.如果找到子串,返回子串所在位置的最左端索引,否则返回-1. 语法格式: str.find(sub[,start[,end]]) 其中,str表示被查找的字符串.sub表示查找的子串.start表示开始索引,缺省时为0.end表

  • python访问抓取网页常用命令总结

    python访问抓取网页常用命令 简单的抓取网页: import urllib.request url="http://google.cn/" response=urllib.request.urlopen(url) #返回文件对象 page=response.read() 直接将URL保存为本地文件: import urllib.request url="http://google.cn/" response=urllib.request.urlopen(url)

  • python学习与数据挖掘应知应会的十大终端命令

    目录 1.wget 2.head 3.tail 4.wc 5.grep 6.cat 7.find 8.sort 9.nano 10.Variables IT界的每个人都应该知道终端(Terminal)的基本知识,数据科学家也不例外.有时,终端是你的全部,尤其是在将模型和数据管道部署到远程机器时. 让我们开始吧! 1.wget wget实用程序用于从远程服务器下载文件.你可以用它来下载数据集,只要你知道网址,可以使用wget命令下载它,我以如下url为例: https://raw.githubus

  • Python 虚拟环境的价值和常用命令详解

    虚拟环境管理今天聊聊Python中虚拟环境的价值和常用命令. 为什么会有虚拟环境?在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy.Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样. 这样需要我们根据需求不断的更新或卸载相应的库. 直接对我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱. 如以下场景: 场景1:项目A需要某个框架1.0版本,项目B需要这个库的2.0版本.如果没有安装虚

  • Python学习之内置函数总结

    目录 常用函数 abs 函数 演示 all 函数 演示 enumerate 函数 演示 input 函数 演示 isinstance 函数 演示 vars 函数 演示 hasattr 函数 演示 setattr 函数 演示 getattr 函数 演示 any 函数 演示 前面的一些章节我们学习了 python 的一些常用的 内置包.内置模块 与 第三方包.第三方模块.今天的章节我们来总结一下 python 中常用的 内置函数,这里可能包括我们之前学习过的和未学习过的.我们一同进行一下简单的介绍.

  • Python学习之Anaconda的使用与配置方法

    俗话说'人生苦短,我有Python',但是如果初学Python的过程中碰到包和Python版本的问题估计会让你再苦一会,我在学习Python的爬虫框架中看到看到了anaconda的介绍,简直是相见恨晚啊,我觉的每个Python的学习网站上首先都应该使用anaconda来进行教程,因为在实践的过程中光环境的各种报错就能消磨掉你所有的学习兴趣! 下面简单的介绍下anaconda,它是将Python版本和许多常用的package打包直接来使用的Python发行版,支持linux.mac.windows

随机推荐