一 ,定义
字符串,是不可变数据类型,用一对单引号,或双引号定义一个字符串
注意事项: 如果字符串内部要使用双引号,则用单引号定义字符串,反之则反。
二,下标,索引取值和切片
通过索引获取指定位置的字符,索引都是从0开始算起
字符串的切片;
1-- 格式, 字符串[起始索引,默认为0:结束索引:步长,默认为1]
2-- 左闭右开,意思就是包含起始,不包含结束
3-- 步长为正,表是正序切,步长为负,表示倒序切。
4-- 字符串的反转, [::-1]
三,字符串的常用操作
a = "我是我是菜鸟,大神,Py大佬"
1-- find 检测指定的子字符串是否包含在字符串中,如果在,则返回该子字符串的开始的索引值,如果不存在则返回-1.常用于一些条件判断
还可以指定检查范围find("字符串",开始索引,结束索引)
字符串.find("要查找的数据") eg-- a.find("大神")
2-- count ,统计字符或子字符串在原字符串中出现的次数
a.count("我")
3-- len 获取字符串的长度
eg-- aa = len(a)
4-- upper 将字符串中的小写字母转换为大写字母。 如果要使用转换后的类型要重新定义一个变量接受新的字符串,因为字符串是不可变类型,不能再次修改。
b = a.upper()
5-- lower 将字符串中的大写字母转换为小写字母,
c = a.lower()
6-- format 格式化输出
动态的去改变字符串的值,占位符: {}, 有几个占位符,就有几个替换参数
age = 18
name = "哈哈"
score = 98.9999
f = 0.98
print("我的名字是: {},年龄是: {}".format(name, age))
print("我的名字是: {0},年龄是: {1}, 我明年年龄是: {1}".format(name, age))
print("我的名字是: {},年龄是: {}, 成绩为: {:.2f},百分比为: {:.2%}".format(name, age, score, f))
有一些数据需要重复使用是,可以在占位符里,加入替换参数的index
格式化输出数字,只保留两位小数的化,在占位符中写 :.2f 2改成3,就是保留三位小数
格式化输出百分比,在占位符中写 :.2% ,表示%号后保留两位小数
以上输出结果为:
7-- endswith 判断字符串以那个字符结束,常用于逻辑判断,如果是则返回True,不是返回False
a.endswith("我")
8-- startswith 判断字符串以那个字符开始,常用于逻辑判断,如果是则返回True,不是返回False
9-- split 字符串分割, 被选为切割符的字符,切割后是丢弃的
返回分割后的字符串列表。
分割的语法 -- str.split(str="", num=string.count(str)). str就是原字符串中的子字符串,并把这个字符串作为分割符,num就是这个分割符在原字符串中的总次数,并作为分割的次数,默认有多少次切多少次,还可以指定分割次数
txt = "Google&Runoob&Taobao&Facebook"
x = txt.split("&", 1) # & 这个符号作为分隔符,且在原字符串中出现了三次,但是我只指定分割一次
print(x)
输出结果为 ['Google', 'Runoob&Taobao&Facebook']
10-- 字符串的拼接
返回通过指定字符连接序列中元素后生成的新字符串。
语法: str.join(sequence) str,为自己想要拿来拼接的字符串,seq是要拼接的列表,或元组
txt = "Google#Runoob#Taobao#Facebook"
x = txt.split("#")
分割后的结果:['Google', 'Runoob', 'Taobao', 'Facebook']
print(x)
c = "!".join(x)
print(c)
拼接后的结果:Google!Runoob!Taobao!Facebook
11-- 字符串的替换操作 replace ,返会替换后的字符串
语法:
str.replace(old, new[, max]) old,要被替换的字符串,new新的字符串, max,原字符串中可能有多个old字符串,所以可指定一个替换的次数,替换不超过max
a = "this is string example....wow!!! this is really string"
print(a.replace("is", "was"))
print (a.replace("is", "was", 3))
以上输出结果为
后续有新踩的坑,在持续记录~