字符串
一、字符串
1.1 字符串的表现方式
字符串有两种种表现方式
-
-
- 单行 使用一对单引号 或 一对双引号
- 多行 使用一对三引号
-
注意:
在最外层使用了单引号,内部只能使用双引号。反之亦然
在单行写不下的情况下,可使用 \ 来写到下一行,他们表示同一行,中间没有/n的换行符。\的后面不能接任何东西了。
>>> str1 = 'hui is good man'
>>> str2 = """ ... hui is ... a ... good man """ >>> str2 '\nhui is \na\ngood man ' >>> str3 = "hui is a \ ... good \ ... cool\ ... man" >>> str3 'hui is a good coolman'
1.2 字符串的拼接
字符串的拼接,其实就是字符串类中的特殊方法,进行了运算符重载。详细的可以看列表部分的字符串重载。
1===使用+进行扩展 >>> str1 = 'hui is ' >>> str2 = 'a good man' >>> s = str1 + str2 2===使用*进行扩展 >>> s1 = "*" >>> s2 = s1*8 >>> s2 '********' >>> s3 = '#'*8 >>> s3 '########'
二、字符串的索引与切片
字符串 和 列表一样,也是一种 可变 序列化的数据结构。
2.1 索引
2.2 切片
S[start:[end:step]] 藏头露尾: 包含start 不包括end
step支持负数。当step是负数的时候,start是靠右边的index,end是靠左边的index。
s[0:3] #打印前3个索引的值 s[:3] #同上 s[3:] #打印第三个到末尾 s[::2] #从头到尾,跳着打印 s[::-1] #倒序打印 s[-2::-2] #倒序从倒数第二个向前取值,每隔2个取一次值 s[5:0:-2] #倒序从索引5向前取值,每隔2个取一次值
三、字符串的格式化三种方式
3.1 % 占位符
在py2中比价常用的一种方式,在py3中也支持。%是一个占位符。后面的变量来进行代替。
3.2 { } format
在py3中使用formmat来替换%的方法,在%使用中,要指定变量的数据类型(%s,%d,%f等)比较麻烦。
方式1:{}也是一个占位符,常规用法。
s4 = 'my name is {},I lived in {}'.format(name,city)
方式2:扩展用法,给{}定义一个标签,使用标签,占位符{}代表的意思更明确
name = 'hui'
city = 'hangzhou'
s4 = 'my name is {n},I lived in {c}'.format(n=name,c=city)
3.3 f-string
第三方组织开发了,被python接受了,只在3.6 版本中有。
字符串前面加上个f,{}里面直接填写变量。
s4 = f'my name is {name},I lived in{city}'
四、字符串常用方法
strip 无参数的时候,去掉两边的空白字符,包括 /r /t 空格这些空白字符
有参数的时候,去掉开头和结尾的指定的字符
split 无参数的时候,以空格分割,存储成一个列表返回
有参数的时候,以指定字符分割,也是存储成一个列表返回
index 查找对应的字符串的开始位置索引,不存在则报错,建议使用find
find 查找对应的字符串的开始位置索引,不存在则返回-1
replace 替换
len py的内置函数,计算长度。
count 统计指定字符或字符串的长度
join 将序列中的元素以指定的字符连接生成一个新的字符串。
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print(str.join( seq )); #a-b-c
center 字符串居中,两端以指定字符补齐
ljust 字符串靠左对齐,右边以指定字符补齐
rjust 字符串靠右对齐,坐标以制定字符补齐
upper 把字符串中的小写转化为大写
lower 把字符串中的大写转化为小写
title 把字符串中的单词,首字母大写,其他变为小写
capitalize 字符串首字母大写,其他都为小写
字符串中文解释大全 https://www.cnblogs.com/zqxqx/p/8782995.html
五、数字与字符串的区分
数 字 是由阿拉伯数字组成,不带引号。 a = 1 , num =102
字符串 是带引号的 a='i am LH'
但是字符串有些方法查看是不是数字,原因是 input函数接受的键盘输入,都是以字符串的形式存储。
但是我们要的是数字,字符串查看是否是数字的方法,是针对字符串的内容而言。 而字符串本身的类型还是字符串。
方法: isdecimal isnumeric isdigit
s1 = '1' print(s1.isdecimal()) # True print(s1.isdigit()) # True print(s1.isnumeric()) # True print("*"*8) s2 = '三' print(s2.isdecimal()) # Flase print(s2.isdigit()) # Flase print(s2.isnumeric()) # True print("*"*8) s3 = '½' print(s3.isdecimal()) # Flase print(s3.isdigit()) # Flase print(s3.isnumeric()) # True print("*"*8) s4 = 'Ⅱ' print(s4.isdecimal()) # Flase print(s4.isdigit()) # Flase print(s4.isnumeric()) # True print("############"*8) s4 = '①' print(s4.isdecimal()) # Flase print(s4.isdigit()) # True print(s4.isnumeric()) # True
范围总结:isnumeric 》 isdigit 》 isdecimal
数字形式的 可以数的 阿拉伯十进制