python课堂整理3---字符串魔法
字符串魔法
1.首字母大写功能
test = "alex"
v = test.capitalize()
print(v)
2.所有变小写(casefold更厉害,可以将很多未知的其他国家字符变小写)
test = "ALex"
v1 = test.casefold()
print(v1)
v2 = test.lower()
print(v2)
3.设置宽度,并将内容居中,20代指总长度,*为空白位置填充一个字符,可有可无。
test = "alex"
v = test.center(20, "*")
print(v)
4.统计某字符出现的次数,可以设置起始和结束位置,可以不设置
test = "alexalexr"
v = test.count('ex',5,8)
print(v)
5.判断以什么什么结尾或开始,也可以指定起始和结束位置
test = "alex"
v1 = test.endswith('x')
v2 = test.startswith('b')
print(v1)
print(v2)
6.以下面代码为例,从a开始数16个为一组,遇到/t,则由/t用空格补齐剩下的数量(补齐16个),默认是8个为一组。
test = "alex\tdabai"
v = test.expandtabs(16)
print(v)
7.从开始往后找,找到第一个后,获取其位置,找不到的话返回 -1,可以指定起始和结束位置
test = "alexalex"
v1 = test.find("ex")
v2 = test.find("ex", 5, 7)
print(v1)
print(v2)
8.格式化,将字符串中的占位符替换为指定的值
test1 = "i am {name}"
print(test1)
v1 = test1.format(name = 'alex')
print(v1)
test2 = "i am {0},age{1}"
print(test2)
v2 = test2.format('Iro man',35)
print(v2)
9.和8效果一样,传入的值为字典类型
test = "i am {name},age{a}"
v = test.format_map({"name":"Iro man", "a":35})
print(v)
☆10.和find功能一样,但是找不到会报错,可忽略,建议用find
test = "alexalex"
v1 = test.index("ex")
print(v1)
v2 = test.index('8')
print(v2)
11.判断字符串是否只包含字母和数字,有别的字符会报False
test1 = "asdfhisa123"
test2 = "wdsf24_@$s2_^"
v1 = test1.isalnum()
v2 = test2.isalnum()
print(v1)
print(v2)
12.判断是否都为字母,汉字。
test = "sdfq大白"
v= test.isalpha()
print(v)
13.判断是否都为数字,而 isdigit更厉害,②也能识别。isnumeric,能识别中文的“二”。
test1 = "123"
test2 = "②"
test3 = "二"
v1 = test1.isdecimal()
v2 = test2.isdigit()
v3 = test3.isnumeric()
print(v1,v2,v3)
14.判断是否为标识符(标识符:字母,数字,下划线,且不能是数字开头)
test1 = "_123asd"
test2 = "3434"
v1 = test1.isidentifier()
v2 = test2.isidentifier()
print(v1, v2)
15.判断是否存在不可显示的字符(\n换行符,\t制表符),存在的话返回False
test = "dada\nsdasdf"
v = test.isprintable()
print(v)
16.判断是否全部是空格
test = " "
v = test.isspace()
print(v)
17.判断是否为标题(标题的每个单词的首字母都是大写)
test = "wo xi huan da Bai"
v = test.istitle()
print(v)
18.将字符串转换为标题(首字母大写)
test = "wo xi huan da Bai"
v = test.title()
print(v)
☆19.将字符中的每一个元素按照指定分隔符进行拼接
test = "你是风儿我是沙"
v = "_".join(test)
print(v)
20.左边内容,右边填充指定符号,或右边内容,左边填充。
test = "alex"
v1 = test.ljust(20, "*")
v2 = test.rjust(20, "❤")
print(v1)
print(v2)
☆21.判断是否是小写,以及全部转换为小写。
test = "Alex"
v1 = test.islower()
v2 = test.lower()
print(v1, v2)
☆22.判断是否都为大写,以及全部转换大写。
test = "Alex"
v1 = test.isupper()
v2 = test.upper()
print(v1, v2)
☆23.去除左边空格,去除右边空格,以及去除左右空格,还可以去除\t和\n,还可以去除指定内容,采用优先最多匹配原则,只要里面包含的字符都可以一一匹配去除
test1 = " alex "
v1 = test1.lstrip()
v2 = test1.rstrip()
v3 = test1.strip()
print(v1,"\n",v2,"\n",v3)
test2 = "xalex"
v = test2.lstrip("lax") #此处也可用rstrip和strip
print(v)
24.对应替换(test1和test2一一对应,把v中和test1相同的字符换成test2中的)
v = "天青色等烟雨而我在等你"
test1 = "天青色等烟雨"
test2 = "炊烟袅袅升起"
m = str.maketrans(test1,test2)
new_v = v.translate(m)
print(new_v)
☆25.分割,split的缺点是不能保留被分割元素
test = "天青色等烟雨而我在等你等你"
v = test.partition('等') #从匹配到的第一个就分割,分割成三份
print(v)
v2 = test.rpartition('等') #从右边开始匹配,也是分割三部分
print(v2)
v3 = test.split('等') #全部分割
print(v3)
v4 = test.split('等',2) #指定分割2次
print(v4)
v5 = test.rsplit('等',2) #从右边开始匹配分割2次
print(v5)
26.只能根据换行符分割,True 和False 决定是否保留换行
est = "天青色\n等烟雨\n而我在等你"
v = test.splitlines()
print(v)
v2 = test.splitlines(True)
print(v2)
☆27.替换
test = "天青色等烟雨而我在等你"
v = test.replace("等", "想")
v2 = test.replace("等", "想", 1) #替换第一个
print(v)
print(v2)
七个重要的基本魔法,join, find, split, strip, upper, lower, replace,全都标记了星星哦
灰魔法
1.用索引获取字符串中的某一字符
test = "天青色等烟雨而我在等你"
v = test[0]
print(v)
2.切片操作
test = "天青色等烟雨而我在等你"
v = test[0:2]
print(v)
3.获取字符串长度
test = "天青色等烟雨而我在等你"
v = len(test)
print(v)
4.for循环
test = "我想你了"
for i in test:
print(i)
谨记:字符串在内存中一旦创建,就无法修改,每次修改,都会在内存中重新创建一次(因为内存中存储的东西都是连续的)
python课堂整理3---字符串魔法的更多相关文章
- python课堂整理4---列表的魔法
一.list 类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] ...
- python课堂整理19----迭代器和生成器
一.概念 • 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,以终止迭代(只能往后走,不能往前退) • 协议是一种约定,pyt ...
- python课堂整理18---文件操作(下)
一.b模式,字节方式(二进制的单位),rb wb ab f = open('test.py', 'rb', encoding = 'utf-8') 报错,因为用了b模式,就不能再指定编码格式了,已经指 ...
- python课堂整理7---集合
前面小节: sep 用来控制每个元素间的间隔符号 print("alex", "dabai", "liu", sep = "&qu ...
- python课堂整理6---字典
一.字典 dict info = {"k1" : "v1", "k2" : "v2"} 以键值对形式组成字典 字典里的 ...
- python课堂整理5---元组
一.元组 Tuple tu = (111, 22, 33, "alex", (11,22), [(33, 44)], True, ) 元组元素不可被修改,不能被增加或删除 一般 ...
- python课堂整理2
一.字节和编码 1个字节是8位二进制 utf-8 表示一个中文要用3个字节 gbk 为中国汉字发明,2个字节可表示汉字 所以 utf-8 可以读gbk编码,而gbk去读utf-8 的内容会乱码 uni ...
- python课堂整理16---内置函数
1. abs :求绝对值 print(abs(-1)) 2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False print(all ...
- python课堂整理15---map, filter,reduce函数
一.map函数 处理序列(可迭代对象)中的每一个元素,得到的结果是一个‘列表’(其实是个迭代器),该‘列表’元素个数及位置与原来一样 理解下面这段代码: num_l = [1, 2, 4, 6] de ...
随机推荐
- Windows 64 位下安装 psyco 1.6
用 eclipse 运行 python 的时候,第一行总是有红色提示:没有安装 psyco,程序可以正常运行但是会有一点慢.于是就干脆装上吧,红色的提示还是越少越舒服. 百度了一下,在这里,http: ...
- 转载几篇文章URL
读了百伯在线Jobbole的几篇文章,转给需要的朋友.如下: 产品小设计大体验:http://blog.jobbole.com/39593/ 苹果是一家有工程师的设计公司:Google是一家有设计师的 ...
- 条款16:成对使用new和delete时要使用相同的形式
请牢记: 如果在new表达式中使用[],必须在相应的delete表达式中也使用[]. new[] 对应 delete[] 如歌在new表达式中不适用[],一定不要在相应的delete表达式中使用[ ...
- admin组件的使用
导进来的模板不能直接放到static里,要从其他的地方移动到static里,否则pycharm不能自动改变路径2.自关联class Userunfo(models.Model): title=m ...
- 在无界面centos7上部署jdk和tomcat
1.安装xshell6 2.创建服务器连接,输入用户名和密码 3.输入 sudo su -root 获取root权限 4.输入 cd /usr/local 进入local文件夹 5.输入 wget - ...
- C#制作浮动图标窗体
先看效果: 这个小图标可以进行随意拖拽,点击还可以产生事件 随便演示一下,效果就是这样的. 下面直接演示如何制作: 新建一个窗体,设置窗体的FormBorderStyle为None(去掉窗体边框): ...
- 血的教训--如何正确使用线程池submit和execute方法
血的教训之背景:使用线程池对存量数据进行迁移,但是总有一批数据迁移失败,无异常日志打印 凶案起因 听说parallelStream并行流是个好东西,由于日常开发stream串行流的场景比较多,这次 ...
- 机器学习之支持向量机原理和sklearn实践
1. 场景描述 问题:如何对对下图的线性可分数据集和线性不可分数据集进行分类? 思路: (1)对线性可分数据集找到最优分割超平面 (2)将线性不可分数据集通过某种方法转换为线性可分数据集 下面将带着这 ...
- linux运维人员常用150个命令汇总
命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...
- Linux系统下解锁Oracle的Scott用户
1).在Oracle用户下面输入命令:lsnrctl status查看监听是否开启,如果未开启则需要开启监听,输入命令:lsnrctl start; 2).如果没有设置监听的话需要先建立一个监听,然后 ...