在Python中用单引号,或双引号括起来的内容就是字符串。以下几种均为字符串:
"我是世界上最美丽的人"
'我是世界上最美丽的人'
'35222'
"True"
'3.141592753'
字符串的方法比较多,大家要多多敲多练习
一、如何定义字符串
a = '啦啦啦'
b = "啦啦啦啦"
c = str("啦啦啦")
二、如何输出一个字符串
print("字符串")
name = "老王"
print("我的名字叫{}".format(name))
print("我的名字叫%s"%name)
三、字符串的拼接
字符串可以直接用 + 号拼接,同样可以使用 format 函数或者 % 符号格式化拼接。
age = 18
name = '美丽'
方法一:
print("{}老师今年{}岁".format(name,age))
方法二:
print("%s今年%d岁"%(name,age))
方法三:
text = "yes"
name = "美丽的人"
text.join(name) # 美yes丽yes的yes人
方法四:
a = "世界上"
b = "最美丽的人"
print(a+b) # 世界上最美丽的人
四、字符串的截取
字符串中的每一个字符都有一个默认的索引值;
从左到右默认从 0 开始,依次递增;
从右往左默认从 -1 开始,依次递增;
代码示例:
txt = "不是在最美好的时光遇见你,而是遇见你以后都是最美好的时光"
print(len(txt))
# 内置函数 len() 获取字符串长度
# 输出内容:28
print(txt)
# 打印字符串
# 输出内容:不是在最美好的时光遇见你,而是遇见你以后都是最美好的时光
print(txt[2])
# 获取字符串中的第三个字符
# 输出内容:在
print(txt[0:2])
# 截取字符串索引值为0~1的字符,不包括索引值为2的字符
# 输出内容:不是
print(txt[2:5])
# 截取字符串索引值为2~4的字符,不包括索引值为5的字符
# 输出内容:在最美
print(txt[2:-1])
# 截取字符串重索引值为2开始直到字符串结尾的前一个,-1的索引值表示最后一个
# 输出内容:在最美好的时光遇见你,而是遇见你以后都是最美好的时
print(txt[2:len(txt)])
# 截取字符串重索引值为2开始直到字符串结尾
# 输出内容:在最美好的时光遇见你,而是遇见你以后都是最美好的时光
print(txt[:4])
# 截取在列表中索引值为0-4的数据,冒号前面不设置参数,默认从0开始,注意截取并不包括4
# 输出内容:不是在最
print(txt[2:])
# 截取在列表中索引值为2-末尾的数据,冒号后面不设置参数,默认截取到最后一位数据,注意截取包括最后一位
# 输出内容:在最美好的时光遇见你,而是遇见你以后都是最美好的时光
print(txt[::-1])
# 从后往前截取所有内容,-1为步长
# 输出内容:光时的好美最是都后以你见遇是而,你见遇光时的好美最在是不
print(txt[290])
# 下标越界
# 输出内容:IndexError: string index out of range ,下标越界(超过了范围)
总结:
1、str[开始:结束:步长] 步长默认从左往右,如果步长为-1从右往左
2、单个取出: str_01[下标] 通过下标可以取出字符串里面的字符,下标从0开始 (默认从左往右)
3、多个取出: str_01[开始下标:结束下标] 包含开始,不包含结束,
如果开始不写,默认从0开始,
如果结束不写,默认到结尾 (默认从左往右)
4、从后往前取: 将步长改成 -1
5、统计字符串的长度:len(字符串)
五、字符串的运算
在成员运算符中,in 和 not in ,主要的作用就是用于检测字符串中是否存在某个字符或字符串,如果存在,则返回True ,不存在则返回 False。
代码示例:
# 定义字符串
myStr = "I'm the beautiful girl"
print("is" in myStr) # False
print("is" not in myStr) # True
上面只是判断存不存在,如何在字符串中查找某一个字符或字符串出现的次数、位置、是否存在某特定字符以及字符串的开头,字符串是否为纯数字、字母、包含特殊符号呢?
代码示例:
# 定义字符串
myStr = "I'm the beautiful girl,my name is beauti."
# find的运用:
print("从myStr中查找is的下标,位置在:",myStr.find("is") )
# 从myStr中查找is,默认从左往右查找,如果找到返回第一次出现的下标,如果不存在返回 -1
# 输出结果:从myStr中查找is的下标,位置在: 31
# rfind的运用:
print("从myStr中查找is的下标,位置在:",myStr.rfind("is"))
# 从myStr中查找is,右往左查找,如果找到返回第一次出现的下标,如果不存在返回 -1
# 输出结果:从myStr中查找is的下标,位置在: 31
# index的运用:
print("从myStr中查找is的下标,位置在:",myStr.index("is"))
# 从myStr中查找is的下标,默认从左往右,如果找到返回第一次出现的下标,如果找不到就报错
# 输出结果:从myStr中查找is的下标,位置在: 31
# rindex的运用
print("从myStr中查找is的下标,位置在:",myStr.rindex("is"))
# 从myStr中查找is的下标,右往左查找,如果找到返回第一次出现的下标,如果找不到就报错
# 输出结果:从myStr中查找is的下标,位置在: 31
# count的运用:
print("从myStr中统计is出现的个数:",myStr.count("is"))
# 从myStr中统计is出现的个数,如果存在返回个数,如果不存在返回0
# 输出结果:从myStr中统计is出现的个数: 1
# startswith的运用:
str2 = "http://www.baidu.com.html"
print("判断str2是否以 http 开头:",str2.startswith("http"))
# 判断str2是否以http开头
# 输出结果:判断str2是否以 http 开头: True
# endswith的运用:
print("判断str2是否以 html 结束:",str2.endswith("html"))
# 判断str2是否以 html 结束
# 输出结果:判断str2是否以 html 结束: True
# isalpha的运用:
print("判断fdasf是否是纯字母:","fdasf".isalpha())
# 判断是否是纯字母
# 输出结果:判断fdasf是否是纯字母: True
# isdigit的运用:
print("判断23232是否是纯数字:","23232".isdigit())
# 判断是否是纯数字
# 输出结果:判断23232是否是纯数字: True
# isalnum 的运用:
print("判断fdaf 13是否含有特殊字符:","fdaf 13".isalnum())
# 判断是否含有特殊字符
# 输出结果:判断fdaf 13是否含有特殊字符: False
# 将myStr字符串在50长度的空间向右看齐
print(myStr.rjust(50))
# 输出结果: I'm the beautiful girl,my name is beauti..
# 将myStr字符串在50长度的空间向左看齐
print(myStr.ljust(50))
# 输出结果:I'm the beautiful girl,my name is beauti. .
# 将myStr字符串在50长度的空间居中显示
print(myStr.center(50))
# 输出结果: I'm the beautiful girl,my name is beauti. .
字符串的替换和分割
代码示例:
# 定义字符串
myStr = "I'm the beautiful girl,\n my name is beauti."
# replace的运用
print(myStr.replace("is", "IS"))
# 将myStr中所有的is替换成IS,对原来的数据不会产生改变
# 输出结果:I'm the beautiful girl,my name IS beauti.
# split 的运用:
print(myStr.split(","))
# 将myStr按照","号进行切割成若干个部分;输出的是个列表
# 输出结果:["I'm the beautiful girl", 'my name is beauti.']
# splitlines 的运用:
print(myStr.splitlines())
# 将myStr按照换行符 \n 进行切割,输出的是列表
# 输出结果:["I'm the beautiful girl,", ' my name is beauti.']
print(myStr.splitlines(True))
# 将myStr按照换行符 \n 进行切割,并且保留换行符 \n ,输出的是列表
# 输出结果:["I'm the beautiful girl,\n", ' my name is beauti.']
# 定义字符串
name = " 我 的 小 宝 贝 我 的 小 宝 贝1 我 的 小 宝 贝2 "
# partition 的运用
print(name.partition("小"))
# 将字符串name按照默认从左往右出现的第一个"小"分割成若干部分,小没有删除,输出的是元祖
# 输出结果:(' 我 的 ', '小', ' 宝 贝 我 的 小 宝 贝1 我 的 小 宝 贝2')
# rpartition 的运用:
print(name.rpartition("小"))
# 将字符串name按照从右往左出现的第一个"小"分割成若干部分,小没有删除,输出的是元祖
# 输出结果:(' 我 的 小 宝 贝 我 的 小 宝 贝1 我 的 ', '小', ' 宝 贝2')
# lstrip 的运用:
print(name.lstrip())
# 去除字符串name左边的空格
# 输出结果:我 的 小 宝 贝 我 的 小 宝 贝1 我 的 小 宝 贝2 .
# rstrip 的运用:
print(name.rstrip())
# 去除字符串name右边的空格
# 输出结果: 我 的 小 宝 贝 我 的 小 宝 贝1 我 的 小 宝 贝2.
# strip 的运用:
print(name.strip())
# 去除字符串两边的空格
# 输出结果:我 的 小 宝 贝 我 的 小 宝 贝1 我 的 小 宝 贝2.
字符串的大小写
代码示例:
# 定义字符串
myStr = "i'm the Beautiful girl,My name is beauti."
# capitalize 的运用:
print(myStr.capitalize())
# 将字符串myStr的首字母大写
# 输出结果:I'm the beautiful girl,my name is beauti.
# title 的运用:
print(myStr.title())
# 将字符串的每一个单词的首字母大写
# 输出结果:I'M The Beautiful Girl,My Name Is Beauti.
# lower 的运用:
print(myStr.lower())
# 将字符串统一转化成小写字母
# 输出结果:i'm the beautiful girl,my name is beauti.
# upper 的运用:
print(myStr.upper())
# 将字符串统一转化成大写字母
# 输出结果:I'M THE BEAUTIFUL GIRL,MY NAME IS BEAUTI.
案例:把字符串转换成列表
代码示例:
# 定义字符串
str = "你 是 不 是 我 最 疼 爱 的 人"
# 思路:通过空格进行切割,返回是列表
print(str.split(" "))
# 输出结果:['你', '是', '不', '是', '我', '最', '疼', '爱', '的', '人']
案例:把字符串转化成字典
代码示例:
# 定义字符串
str1 = '{"name":"老王","age":18,"addr":"长沙" }'
# eval就是把字符串转化成Python表达式
dict1 = eval(str1)
print("dict1的类型是{},{}".format(type(dict1),dict1))
# 输出结果:dict1的类型是<class 'dict'>,{'name': '老王', 'age': 18, 'addr': '长沙'}