Python基础【day02】:字符串(四)
在Python中字符串本身有带很多操作,字符串的特性,不可以被修改
0、字符串常用功能汇总

1、字符串的定义
#定义空字符串
>>> name=''
#定义非空字符串
>>> name="luoahong"
#通过下标访问
>>> name[1]
'u'
#不能修改字符串的值,否则会报错
>>> name[2] = "3"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
特别提醒:字符串如果修改的话,字符串所在的内存地址也跟着变化,所以不可被修改,但是对于列表来说,可以修改是因为列表的内存是不变的,可以直接在上面修改
2、切片
特别提醒:字符串其实和列表,元组一样,也是可以切片的
>>> name="ahong luo"
>>> name[1:4] #取1到4之间的字符,包括1,不包括4
'hon'
>>> name[1:-1] #取1到-1之间的字符,包括1,不包括-1
'hong lu'
>>> name[0:3]
'aho'
>>> name[:3] #从头开始取,0可以省略,效果等同于name[0:3]
'aho'
>>> name[3:] #想取到最后一个值,必须不能写-1,只能这么写
'ng luo'
>>> name[0::2] #后面的2表示:每隔一个字符就取一个
'aoglo'
>>> name[::2] #从头开始0可以省略,效果跟上一句一样
'aoglo'
3、首字母大写(capitalize())
>>> name="ahong luo"
>>> name.capitalize()
'Ahong luo'
>>>
4、统计(count(sub,start=None,end=None))
sub:统计的字符,start:开始位,end:结束位,start和end默认为空时,则表示全部字符中去统计
>>> name="ahong luo"
#有开始和结束符
>>> name.count("o",1,5)
1
#从整个字符串中统计字符
>>> name.count("o")
2
>>>
5、center(width,fillchar)
如果width(字符宽度)小于等于(<=)字符串的长度,则返回原字符串,如果大于(>)字符串的,则用fillchar(填满字符)填满,处理结果等于width,字符串位于fillchar的中间
>>> name="ahong luo"
>>> len(name)
9
#10小于等于字符串宽度
>>> name.center(12,'-')
'-ahong luo--'
#50大于字符串长度,并且字符串位于填充字符的中间
>>> name.center(50,'-')
'--------------------ahong luo---------------------'
>>> len(name.center(50,'-'))
50
6、ljust(width,fillchar)
如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最右边
>>> name="ahong luo"
>>> len(name)
9
#小于等于字符串的长度
>>> name.ljust(8,'-')
'ahong luo'
#大于字符串的长度
>>> name.ljust(50,'-')
'ahong luo-----------------------------------------'
特别提醒:ljust中的l表示left的意思,表示从右向左
7.rjust(width,fillchar)
如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最左边
>>> name="ahong luo"
>>> len(name)
9
>>> name.rjust(8,'-')
'ahong luo'
>>> name.rjust(50,'-')
'-----------------------------------------ahong luo'
特别提醒:ljust中的l表示left的意思,表示从左向右
8、编码(encode)
字符串的编码和解码,在这边不用说了,我专门写了一篇博客,详细地址:猛击这里
9、endwith(suffix,start=None,end=None)
判断是否已suffix结尾,是返回True,否返回Fales
suffix:表示字符,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断>>> name="ahong luo"
>>> name.endswith('0',1,4)
False
>>> name.endswith('o')
True
>>> name.endswith('o',1,4)
False
10、find(sub,start=None,end=None)
全文查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1
sub:字符或者字符串,start:开始位,end:结束位,start和end默认为空时,则在整个字符串中查找
>>> name="ahong luo" #没找到,则返回-1
>>> name.find("lu",1,4)
-1
>>> name.find("a",2)
-1
>>> name.find("lu")
6
>>> name.find("lu",1,6)
-1
>>> name.find("lu",1,10)
6
>>>
11、rfind(sub,start=None,end=None)
从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1
>>> name="ahong luo"
#找到
>>> name.rfind("a")
0
#未找到
>>> name.rfind("a",2)
-1
12、format()
①关键字拼接也是官方推荐 1
2
3
4
5
6
7
8
9
name = "alex"
age = 18 info = '''----info-----
name:{_name}
age:{_age}
'''.format(_name=name,_age=age) print(info)
②占位符拼接 1
2
3
4
5
6
7
8
9
name = "alex"
age = 18 info = '''----info-----
name:{0}
age:{1}
'''.format(name,age) print(info)
13、format_map()
数据格式,以字典形式传入
>>> name="name:{name},age:{age}"
>>> name.format_map({"name":"luoahong",'age':23})
#输出结果
'name:luoahong,age:23'
14、isalnum()
是否是一个阿拉伯数字和字母,它包含因为英文字符+(1-9)数字,中间不能有特殊字符
>>> age='23'
>>> age.isalnum()
True
#有特殊字符的
>>> age='ab23'
>>> age='ab'
>>> age.isalnum()
True
>>> age='ab'
>>> age.isalpha()
True
>>>
15、isalpha()
是否是一个纯的英文字符,包含大写
|
1
2
3
4
5
6
7
8
9
10
11
|
>>> age = 'ab'>>> age.isalpha()True#夹着数字>>> age = 'ab23'>>> age.isalpha()False#大写>>> age = 'Ab'>>> age.isalpha()True |
16、isdigit()
判断是否是一个整数
17、isspace()
判断是否是一个空格
|
1
2
3
4
5
6
7
8
|
#不是空格>>> age = ' age'>>> age.isspace()False#是空格>>> age = ' '>>> age.isspace()True |
18、istitle()
是否是一个标题(字符串中的每个单子首字母大写)
#每个单词的首字母是小写
>>> name="luoahong"
>>> name.istitle()
False
>>> name="luo a hong"
>>> name.istitle()
False
#每个单词的首字母大写
>>> name="Luo A Hong"
>>> name.istitle()
True
>>> name="Luoahong"
>>> name.istitle()
True
19、isupper()
是否是大写,注意字符串必须全部是大写才会返回True,否则返回False
#全部大写
>>> name="LUO"
>>> name.isupper()
True
#小写
>>> name="Luo"
>>> name.isupper()
False
>>>
20、join()
序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型
|
1
2
3
|
>>> a = ['1','2','3']>>> '+'.join(a)'1+2+3' |
21、lower()
字符串中的大写字母转换为小写字母
>>> name="LuoAHong"
>>> name.lower()
'luoahong'
>>>
22、upper()
字符串中的小写字母转换为大写字母
>>> name="LuoAHong"
>>> name.upper()
'LUOAHONG'
23、strip()
去掉左右两边的空格(space)和回车(\n)
>>> name= " \n luoahong \n"
>>> name.strip()
'luoahong'
24、lstrip()
删掉左边到右的空格(space)和回车(\n)
>>> name= " \n luoahong \n"
>>> name.lstrip()
'luoahong \n'
25、rstrip()
删掉右边到左边的空格(space)和回车(\n)
>>> name= " \n luoahong \n"
>>> name.rstrip()
' \n luoahong'
至此,方法前有l(left)和r(right)的函数,都是对之前函数的一个扩展,带l的表示至始至终从右到左操作,记住左边才是最终目的地,而带r的至始至终都是从左到右,因为右边才是它的终极目标
26、split()
分割函数,默认是以空格分割(space)生成一个列表,如果其他字符分割,输入其他字符参数
>>> name="ahong luo"
#默认为空,按空格分割
>>> name.split()
['ahong', 'luo']
>>> name="ahong+luo"
#以"+"字符分割
>>> name.split("+")
['ahong', 'luo']
#以'\n'分割
>>> name="ahong\nluo"
>>> name.split("\n")
['ahong', 'luo']
27、splitlines()
以换行符分割,这个一般在windows上开发,移到Linux上执行,或者在Linux上开发,移到Windows上执行,因为换行在windows上是"\r\n",linux上是'\n'
>>> name="ahong\nluo"
>>> name.splitlines()
['ahong', 'luo']
28、swapcase()
把大写换成小写,把小写换成大写
>>> name="Luo"
>>> name.swapcase()
'lUO'
29、startswith(prefix, start=None,end=None)
判断是否以prefix开始,是返回True,否返回Fales
prefix:表示字符或者字符或者字符串,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断
>>> name="ahong luo"
>>> name.startswith("luo") #开头找到"luo"字符串
False
>>> name.startswith("h",3,5) #在索引3到5之间没有找到以字符'h'开头
False
30、replace(old,new[, max])
old:将被替换的子字符串; new:新字符串,用于替换old子字符串;max:可选字符串, 替换不超过 max 次
>>> name="wo shi luo a hong"
>>> name.replace("shi","bushi")
'wo bushi luo a hong'
#原字符串没有改变
>>> name.replace("shi","bushi",0)
'wo shi luo a hong'
>>> name.replace("shi","bushi",1)
'wo bushi luo a hong'
31、zfill(width)
字符的长度是否大于等于(>=)with,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串
>>> name="luoahong"
>>> len(name)
8
#width大于字符串长度
>>> name.zfill(11)
'000luoahong'
#width小于等于字符串长度
>>> name.zfill(8)
'luoahong'
>>>
Python基础【day02】:字符串(四)的更多相关文章
- Python基础数据类型-字符串(string)
Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...
- python基础篇(四)
PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...
- Python基础-day02
写在前面 上课第二天,打卡: 大人不华,君子务实. 一.进制相关 - 进制基础 数据存储在磁盘上或者内存中,都是以0.1形式存在的:即是以 二进制 的形式存在: 为了存储和展示,人们陆续扩展了数据的表 ...
- Python基础(二) —— 字符串、列表、字典等常用操作
一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 二.三元运算 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为 ...
- python基础、字符串和if条件语句,while循环,跳出循环、结束循环
一:Python基础 1.文件后缀名: .py 2.Python2中读中文要在文件头写: -*-coding:utf8-*- 3.input用法 n为变量,代指某一变化的值 n = inpu ...
- Python基础学习(四)
菜鸟咀嚼python基础之继续. 一.返回函数 第三章已经简单操作了Python的高阶函数,目前继续练手函数作为返回值的特效:通常,高阶函数除了可以接收函数作为参数外,还可以把函数作为结果值返回. 案 ...
- Python基础__字符串拼接、格式化输出与复制
上一节介绍了序列的一些基本操作类型,这一节针对字符串的拼接.格式化输出以及复制的等做做详细介绍.一. 字符串的拼接 a = 'I', b = 'love', c = 'Python'. 我们的目的是: ...
- python基础语法(四)
--------------------------------------------接 Python 基础语法(三)---------------------------------------- ...
- python基础类型—字符串
字符串str 用引号引起开的就是字符串(单引号,双引号,多引号) 1.字符串的索引与切片. 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推. a = 'ABCDEFGHIJK' p ...
- Python基础二字符串和变量
了解一下Python中的字符串和变量,和Java,c还是有点区别的,别的不多说,上今天学习的代码 Python中没有自增自减这一项,在转义字符那一块,\n,\r\n都是表示回车,但是对于不同的操作系统 ...
随机推荐
- Android Studio下创建menu布局文件
一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...
- Fortify Scan - Static Code Analyzer
https://software.microfocus.com/en-us/products/application-security-testing/overview https://softwar ...
- [转帖]Tomcat目录结构详解
Tomcat目录结构详解 https://www.cnblogs.com/veggiegfei/p/8474484.html 之前应该是知道一点 但是没有这么系统 感谢原作者的描述. 1.bin: 该 ...
- number (2)变量相关错误
变量没有被定义 fw cannot be resolved 变量没有被初始化 正确代码 package com.itheima_01; import java.io.FileWriter;import ...
- js的forEach遍历不可以给value赋值
可以给value的对象赋值,如果想共用内存地址可以使用for循环更改数组内对象的值:
- Link-Cut Tree(LCT)&TopTree讲解
前言: Link-Cut Tree简称LCT是解决动态树问题的一种数据结构,可以说是我见过功能最强大的一种树上数据结构了.在此与大家分享一下LCT的学习笔记.提示:前置知识点需要树链剖分和splay. ...
- BZOJ2069 POI2004ZAW(最短路)
显然这样的路径一定是选择了与1相邻的不同的两点分别作为起点和终点(除1本身).如果能将每一组起点终点都计算到就可以得出最优解了.暴力显然不行.注意到我们每次求出的是单源最短路径,考虑如何充分利用信息. ...
- JavaScript 隐式类型转换
JavaScript 隐式类型转换 原文:https://blog.csdn.net/itcast_cn/article/details/82887895 · 1.1 隐式转换介绍 · 1.2 隐式转 ...
- MT【53】对数平均做数列放缩
[从最简单的做起]--波利亚 请看下面三道循序渐进不断加细的题. 评:随着右边的不断加细,解决问题的方法也越来越"高端".当然最佳值$ln2$我们可以用相对 容易的方法来证明: $ ...
- 【POI每日题解 #6】KRA-The Disks
题目链接 : [POI2006]KRA-The Disks 好有既视感啊... 注意一下输入输出 输入是从上到下输入箱子的宽度 输出是最上面的积木停在哪一层 即 箱子高度 - 积木高度 + 1 在初始 ...