2、字符串类型
字符串类型 str
用途:存描述性信息的数据,如个人简介,姓名等
定义方式:
- 单引号 ' '
- 双引号 " "
- 三引号 ''' ''' 或者""" """
三种方式没有区别,但是同一级引号不能混用,字符串内套字符串,需用不同引号
字符串前面加个小写的r,表示转义,将字符串内有特殊意义的字符,全部转成普通字符串
用引号引起的部分,全部转成字符串
print("不换行\r","打印")# >>>打印
print(r"不换行\r")# >>>不换行\r
内置方法
1.索引取值(正向从0开始,反向从-1开始),只能取,不能存
s1 = "15,4'shen',[2]"
print(s1[2])# 正向取>>>,
print(s1[-3])# 反向取>>>[
2.索引切片 :截取字符串中的一小段字符,(顾头不顾尾)第三个为步长
s1 = "hello,world"
print(s1[0:5])
print(s1[:5])# 取前5个数
print(s1[::-1])# 反向取
print(s1[-5:])# 取后五个数
print(s1[0:7:2])# 以步长为2取
3.成员运算:in 和 not in 返回的是布尔值
s1 = "hello,world"
print("o"in s1)# >>>True
print("e" not in s1)# >>>False
4..strip():去除字符串左右两边指定的字符
s1 = input(">>>").strip()# 去除字符串两边的空格
s2 = input(">>>").strip("*")# 去除输入两边的*
s3 = "***shen****"
print(s3.strip("*"))# 去除两边的*
5.len():获取字符串中字符的个数,列表中,值的个数,字典中键值对个数
s1 = "hello world"
print(len(s1))# >>>11(空格也算)
6..split():切分:对字符串按照指定的分隔符进行从左往右切分,可以指定切分次数,返回的是一个列表
s1 = "python hello world"
print(s1.split())
s1 = "python|hello|world"
print(s1.split("|"))
print(s1.split("|",1))# 指定切分次数,从左往右切
s1 = "python\hello\world"
print(s1.split("\\"))# 需两个\\前面一个为转义\特殊意义的,python中\\代表自身\
7.for 变量 in 可迭代对象:循环取值:字符串、列表、字典中能索引取值的
s1 = "hello world"
for i in s1:
print(i)
8..rstrip()/lstrip():去除字符串右边/左边的指定字符
s3 = "***shen****"
print(s3.strip("*"))
print(s3.rstrip("*"))
print(s3.lstrip("*"))
9..lower()/.upper():转换大小写
用于写登录验证码时可使用
s1 = "Hello WorlD"
print(s1.lower())# 全部字母转成小写
print(s1.upper())# 全部字母转成大写
10..startswith()/.endswith():判断是否以。。字符开头或者以。。字符结尾,返回的是布尔值
s1 = "hello world"
print(s1.startswith("h"))
print(s1.endswith("ld"))
11.字符串格式化,%s,%d,.format(),f-string
- %s和%d
%s可以接收任意字符,%d只能接收数字类型并且输出转换成整型
name = input("输入名字:")
age = input("输入年龄:")
#age = int(age)#%d只能接收数字类型,故需要转换成数字类型
age = eval(age)#%d只能接收数字类型,故需要转换成数字类型
print("my name is %s" % name)
print("my name is %s , my age is %d" % (name, age))
print("my name is %s , my age is %s" % (name, age))
- .format()
三种玩法
- “{}{}”.format(xxx,yyy)#按照顺序往花括号里放值
- "{1}".format(xxx,yyy,zzz)#按照索引往花括号里放值
- "{name}".format(name=xxx)#指定放值
name = "shen"
age = 18
hobby = "study"
#按顺序往{}里放值
print("我的名字是{}我的年龄{}".format(name, age, hobby))
#按索引放值
print("我的名字是{0}我的年龄{2}".format(name, hobby, age))
#按指定放值
print("我的名字是{mz}我的年龄{nn}".format(mz=name, nn=age))
- f-string (python3.6版本之后才有的功能)
f"{xxx}"
name = "shen"
age = 18
habby = "study"
print(f"我的名字是{name},我的年龄是:{age}我的爱好是{hobby}")
12..rslipt():切分,从右往左切,可以指定切分次数,返回列表
s1 = "python|hello|world"
print(s1.split("|",1))
print(s1.rsplit("|"))
print(s1.rsplit("|",1))
13..join():按照分隔符将加入纯字符串组成的可迭代对象中元素拼成字符串
s1 = ["1","8","shen"]
print("*".join(s1))# 将*加入到纯字符串列表中拼接成字符串
s1 = {"name":"shen","age":18}
print("$".join(s1))#字典拼接的是key关键字
s1 = "sean"
print("$".join(s1))# 字符串按照每一个字符中间插入拼成新的字符串
14..replace():将字符串中字符按照旧值,新值进行替换
s1 = "hello world"
print(s1.replace("hello", "hi"))# >>>hi world
print(s1)# >>>"hello world"
15..isdigit():判断当前字符串中的数据,是否为存数字(整数),返回是布尔值
识别bytes和unicode
s1 ="123"
s2 = "123,321"
print(s1.isdigit())# >>>True
print(s2.isdigit())# >>>False
16..find()、.index():查找字符在字符串中的索引位置
s1 = "hello"
print(s1.find("l",0,2))# >>>找不到返回的是-1
print(s1.find("e"))# >>>找到直接返回从左到右第一个索引位置
print(s1.index("l"),1,2)# >>>找不到会报错
print(s1.index("e"))# >>>找到返回从左到右第一个索引值
17..count():统计字符在字符串中的个数
s1 = "hello"
print(s1.count("l",0,-1))# >>>2
18.字符串拼接
只能进行相加和相乘
s1 = "hello"
s2 = 'world'
print(s1 + s2)# >>>helloworld
print(s1 * 2)# >>>hellohello
可以索引取值,有序,值变id变所以是不可变类型,只能存一个值