str类型内置方法
str类型内置方法
用途
字符串数字、字母、下划线组成的一串字符,主要是用来描述一些类似于名字,爱好……
定义方式
在单引号、双引号、三单/双引号之间
name1 = 'hades' # 单引号
name2 = "bonnie" # 双引号
name3 = '''hades and bonnie''' # 三单引号
name4 = """hades + bonnie""" # 三双引号
print(name1)
print(name2)
print(name3)
print(name4)
hades
bonnie
hades and bonnie
hades + bonnie
常用操作和内置方法
优先掌握
按索引取值
hades_info = "hades's weight is 125,height is 168 and he likes reading"
# 0123456789…… 索引序号
print(hades_info[3]) # 正值从左往右数
print(hades_info[-3]) # 负值从右往左数
e
i
切片
语法:
- print(str[起始索引:终止索引:步长])
- 同样的顾头不顾尾
hades_info = "hades's weight is 125,height is 168 and he likes reading"
print(hades_info[:])
print(hades_info[8:14])
print(hades_info[5:17:2]) # 如果起始索引 < 终止索引,则步长为正,默认值为1
print(hades_info[-7:-1:1])
print(hades_info[-1:-7]+ '打印不了') # **如果起始索引 > 终止索引,则步长一定需要设置且必须为负值,否则不会打印
print(hades_info[-1:-7:-1])
hades's weight is 125,height is 168 and he likes reading
weight
' egti
readin
打印不了
gnidae
注意:字符串里的空格也是一个字符
长度len
语法:
- len(str)
hades_info = "hades's weight is 125,height is 168 and he likes reading"
print(len(hades_info))
56
成员运算in|not in
语法:
- print(str1 in str)
- print(str2 not in str)
hades_info = "hades's weight is 125,height is 168 and he likes reading"
print('hades'in hades_info)
print('girl'in hades_info) # 这是进行判断,所打印bool值
True
False
移除空白strip
语法:
- str.strip('str1')
- 只能移除两端的str1,字符串中间的str1不能移除,默认值为空格
string = ' a abcd a '
print(string)
print(string.strip())
string = 'aaaa abcd aa'
string1 = ' aaaa abcd aa'
print(string.strip('a'))
print(string1.strip('a'))
a abcd a
a abcd a
abcd
aaaa abcd
切分split
语法:
- str.spilt(sep,maxsplit):从左往右切分
- sep表示切分点,一般默认为空格
- maxsplit表示切的份数,默认为最大切分数
hades_info = "hades's weight is 125,height is 168 and he likes reading"
print(hades_info.split())
print(hades_info.split('s')) # 以's'为切分点,即遇到's'就切
print(hades_info.split('s',3)) # 这个切了3次
["hades's", 'weight', 'is', '125,height', 'is', '168', 'and', 'he', 'likes', 'reading']
['hade', "'", ' weight i', ' 125,height i', ' 168 and he like', ' reading']
['hade', "'", ' weight i', ' 125,height is 168 and he likes reading']
循环
string = 'abcd f'
for i in string:
print(i) # pay attention 空格也是一个字符哦
a
b
c
d
f
需要掌握
lstrip&rstrip
语法&定义:用法和strip一样
- str.lstrip('str1'):移除str字符串左边str1
- str.rstrip('str2'):移除str字符串右边str2
string = ' a abcd a '
print(string)
print(string.lstrip())
print(string.rstrip())
a abcd a
a abcd a
a abcd a
lower & upper
语法&定义:
- str.lower():将字符串中的字母全部转换成小写
- str.upper():将字符串中的字母全部转换成大写
string = 'a 246 ABcd % G '
print(string.lower())
print(string.upper())
a 246 abcd % g
A 246 ABCD % G
startswith & endswith
语法&定义:
- str.startswith(str1,start,end):检查字符串的子字符串(从第start元素到第end元素)开头是否以str1字符串开头
- str.endswith(str2,start,end):检查字符串的子字符串(从第start元素到第end元素)结尾是否以str2字符串结尾
str = "this is string example....wow!!!";
print(str.startswith( 'this' ))
print(str.startswith( 'is', 2, 4 ))
print(str.startswith( 'this', 2, 4 ))
True
True
False
rsplit
语法&定义:用法和split一样
- str.rsplit('str1'):从右往左切分
hades_info = "hades's weight is 125,height is 168 and he likes reading"
print(hades_info.rsplit('s',3)) # 以's'为切分点,从右往左切了3次
["hades's weight i", ' 125,height i', ' 168 and he like', ' reading']
join
语法&定义:
- str.join(list):将列表通过str串成一个字符串
alph_list = ['a','b','c','d']
str = ' > > '
print(str.join(alph_list))
print(type(str.join(alph_list)))
a > > b > > c > > d
<class 'str'>
注意:数据类型不可和字符串拼接
alph_list = ['a','b',3,'d']
str = ' > > '
print(str.join(alph_list)) # 报错
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-56-c81183775983> in <module>
1 alph_list = ['a','b',3,'d']
2 str = ' > > '
----> 3 print(str.join(alph_list)) # 报错
TypeError: sequence item 2: expected str instance, int found
replace()
语法&定义:
- str.replace(str1,str2):将字符串
str中的子字符串str1替换成str2
hades_info = "hades's weight is 125,height is 168 and he likes reading"
print(hades_info.replace('is','是'))
hades's weight 是 125,height 是 168 and he likes reading
isdigit()
语法&定义:
- str.isdigit():判断字符串str里的值是否是整型,得到的值是bool类型
str1 = '234'
str2 = ' 234'
print(str1.isdigit())
print(str2.isdigit())
True
False
了解
- find|rfind|index|rindex|count
语法&定义:
- str.find(str1):从左往右寻找
str字符串中的某个子字符串str1,True则返回字符串的索引值,False则返回-1 - str.rfind(str1):从右往左寻找
str字符串中的某个子字符串str1,True则返回字符串的索引值,False则返回-1 - str.index(str1):从左往右寻找
str字符串中的某个子字符串str1,True则返回字符串的索引值,False则报错 - str.rindex(str1):从右往左寻找
str字符串中的某个子字符串str1,True则返回字符串的索引值,False则报错 - str.count(str1):从
str字符串中寻找某个子字符串str1的个数
str = 'abcdeafghijklmn'
print(str.find('b'),str.find('r'))
print(str.rfind('a'),str.rfind('r'))
print(str.index('k'),str.rindex('b'))
print(str.count('a'),str.count('r'))
1 -1
5 -1
11 1
2 0
- center|ljust|rjust|zfill
语法&定义:
- str.center(width,str1):返回str居中,并使用str1填充至长度 width 的新字符串,默认填充字符为空格
- str.ljust(width,str1)):返回str居左,并使用str1填充至长度 width 的新字符串,默认填充字符为空格
- str.rjust(width,str1):返回str居右,并使用str1填充至长度 width 的新字符串,默认填充字符为空格
- str.zfill(width):返回str居右,并使用0填充至长度 width 的新字符串
str = 'hades'
print(str.center(20,'*'))
print(str.ljust(20,'-'))
print(str.rjust(20,'$'))
print(str.zfill(20))
*******hades********
hades---------------
$$$$$$$$$$$$$$$hades
000000000000000hades
- expandtabs()
语法&定义:
- 'a\tbc\te'.expandtabs():在字符串'abce'中插入
\t的位置添加空格,默认为8个空格
print('a\tbc\te'.expandtabs())
print('a\tbc\te'.expandtabs(4))
a bc e
a bc e
- captalize()、swapcase()、title()
语法&定义:
- str.capitalize():将字符串str的第一个字母转换为大写,其余的全部小写
- str.swapcase():将字符串str的字母大小写互换
- str.title():将每一个单词的首字母大写,其余字母小写
str = 'ab CDEfg hiJK,Lmn'
print(str.capitalize())
print(str.swapcase())
print(str.title())
Ab cdefg hijk,lmn
AB cdeFG HIjk,lMN
Ab Cdefg Hijk,Lmn
- is数字系列
- isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False
- isdigit(): 如果字符串只包含数字,则返回True,否则返回False
- isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False
- is其他
- isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回False
- isalpha(): 如果字符串至少有一个字符并且所有字符都是字母,则返回True,否则返回False
- islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False
- isspace(): 如果字符串中只包含空白,则返回True,否则返回False
- isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False
- istitle(): 如果字符串是标题类型的,则返回True,否则返回False
存一个值or多个值
- 一个值
有序or无序
- 有索引,所以是有序的
可变or不可变
- 不可变数据类型
强化训练
`1. 写代码,有如下变量(name = " aleX"),请按照要求实现每个功能:
- 移除 name 变量对应的值两边的空格,并输出处理结果
- 判断 name 变量对应的值是否以 "al" 开头,并输出结果
- 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
- 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
- 将 name 变量对应的值根据 “l” 分割,并输出结果。
- 将 name 变量对应的值变大写,并输出结果
- 将 name 变量对应的值变小写,并输出结果
- 请输出 name 变量对应的值的第 2 个字符?
- 请输出 name 变量对应的值的前 3 个字符?
- 请输出 name 变量对应的值的后 2 个字符?
- 请输出 name 变量对应的值中 “e” 所在索引位置?
- 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo`
name = ' aleX'
print(f"1.{name.strip()}")
print(f"2.{name.startswith('al')}")
print(f"3.{name.endswith('X')}")
print(f"4.{name.replace('l','p')}")
print(f"5.{name.split('l')}")
print(f"6.{name.upper()}")
print(f"7.{name.lower()}")
print(f"8.{name[1]}")
print(f"9.{name[:3]}")
print(f"10.{name[-2:]}")
print(f"11.{name.index('e')}")
print(f"12.{name[:-1]}")
1.aleX
2.False
3.True
4. apeX
5.[' a', 'eX']
6. ALEX
7. alex
8.a
9. al
10.eX
11.3
12. ale
str类型内置方法的更多相关文章
- python-数字类型内置方法
数字类型内置方法 为什么要有数据类型? 数据是用来表示状态的,不同的状态就应该用不同的数据类型去表示 整型(int) 用途:年龄.号码.银行卡号等 定义:可以使用int()方法将纯数字的字符串转换为十 ...
- day07-列表类型/元组类型/字典类型/集合类型内置方法
目录 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 列表类型内置方法 用来存多个元素,[]内用逗号隔开任意数据类型的元素 1. list()强制类型转换 print(list ...
- day08 数字,字符串类型内置方法
目录 数字类型内置方法 为什么要有数据类型? 定义方式 方法 储存一个值or多个值? 有序or无序?(有序:有索引, 无序:无索引) 可变or不可变(可变:值变id不变,不可变:值变id也变) 字符串 ...
- 元组tuple类型内置方法
目录 元组tuple类型内置方法 用途 定义 常用操作+内置方法 优先掌握 存一个值or多个值 有序or无序 可变or不可变 元组tuple类型内置方法 元组是不可变的列表,在定义完成后后面就不可以进 ...
- day06-数字类型、字符串类型内置方法
目录 数字类型内置方法 字符串类型内置方法 有序 or 无序 可变 or 不可变 数字类型内置方法 1. int()强制类型转化成整型 age_str = '18' # 定义字符串 age = int ...
- Python-数据类型内置方法(1)
目录 数字类型内置方法 整形(int) 浮点型(float) 字符串类型内置方法 优先掌握 需要掌握 了解 列表类型内置方法 优先掌握 需要掌握 数字类型内置方法 整形(int) 作用:年龄 定义:x ...
- Python基础之字符串类型内置方法
目录 1. 字符串类型 2. 常用操作及内置方法 3. 其他内置方法 1. 字符串类型 用途:姓名,性别等 定义: name1 = 'zhaojun' name2 = "zhaojun&qu ...
- 7.4 元组tuple类型内置方法
元组tuple 元组相当于不可变的列表,在定义完成后后面就不可以进行更改,因此元组只可取不可存 因为不可变,所以相对列表来说,他的功能也少了很多,所以,不难理解,他有个优点就是占用内存小. 作用:能够 ...
- Python-数据类型内置方法(2)
目录 元组(tuple) 内置方法: 字典(dict) 内置方法: 优先掌握: 需要掌握 集合(set) 优先掌握 深浅拷贝 拷贝(赋值) 浅拷贝 深拷贝 总结 存值个数 有序 or 无序 可变 or ...
随机推荐
- 并不对劲的st表
对于带修改的区间求和能做到O(n log n)预处理,O(log n)查询:而不带修改的可以做到O(n)预处理,O(1)查询.那么不带修改的区间最值能做到O(1)查询吗? 区间最值有这样一个性质:对于 ...
- OPENCL 错误码
#define CL_SUCCESS 0 #define CL_DEVICE_NOT_FOUND -1 #define CL_DEVICE_NOT_AVAILABLE -2 #define CL_CO ...
- codeforces AIM Tech Round 4 div 2
A:开个桶统计一下,但是不要忘记k和0比较大小 #include<bits/stdc++.h> using namespace std; ]; ]; int main() { int k; ...
- vue开发环境和生产环境里面解决跨域的几种方法
什么是跨域 跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据.源指协议,端口,域名.只要这个3个中有一个不同就是跨域. 这里列举一个经典的列子: #协议跨域 http://a.baidu. ...
- 51nod1298 圆与三角形
1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三 ...
- redis 配置多个ip 解决方案
因为在 redis 中bind 指定的ip 其实为同一网段或localhost 监听ip,在这里配置 内网其他网段或者外网多个ip 后 重启 redis 是不会成功的, 这边建议使用 折中方案,开通 ...
- Java 8 (5) Stream 流 - 收集数据
在前面已经使用过collect终端操作了,主要是用来把Stream中的所有元素结合成一个List,在本章中,你会发现collect是一个归约操作,就像reduce一样可以接受各种做法作为参数,将流中的 ...
- CF869C The Intriguing Obsession
思路: 分别在两种不同颜色的岛屿群之间进行搭桥.因为相同颜色的岛屿之间不能有边,任意两个相同颜色的岛屿不能同时和另外一个不同颜色的岛屿都有边.实现: #include <bits/stdc++. ...
- UVM基础之-------uvm factory机制override<博>
override功能是UVM中一个比较重要的功能,这个功能也是在factory里面实现的,我们会在env或者具体的case中使用override功能. class case_x extends bas ...
- MySQL——基本安装与使用
基本安装 下载地址:https://dev.mysql.com/downloads/mysql/ 选择解压版本:mysql-5.7.21-winx64.zip 以管理员身份打开cmd(除了安装服务不要 ...