目录
python基础03(字符串)
认识字符串
name1 = "tom"
name2 = 'libai'
name3 = '''tom'''
name4 = """libai"""
# 其中的name1-4都是字符串类型
str1 = "hello " \
"python"
# 三引号支持回车换行
str2 = """hello
python"""
str3 = "I'm tom" = 'I\'m tom'
字符串输出
myName = "tom"
print('我的名字%s' % myName)
print(f'我的名字{myName}')
# 遍历
for item in myName:
print(f"{item}", end="")
print()
字符串输入
name = input("输入你的名字")
print(f"你的名字是{name}")
print(type(name))
passwd = input("请输入你的密码")
print(f"你的密码是{passwd}")
print(type(passwd))
下标
下标有称为索引,也就是编号,通过下标快速的找到对应的数据
str2 = "abcdefg"
print(str2[0]) # 对应a
print(str2[1]) # 对应b
切片
截取字符串中得一部分数据的操作,字符串、元组、列表都是支持切片操作的。
语法:
序列[开始位置的下表:结束位置的下表:步长]
1、不包含结束位置下标对应的数据,正负整数均可以
2、步长是选取间隔,正负整数均可,负数代表选取方向从右向左(要和开始结束方向一致),
正数代表选取方向从做向右(要和开始结束方向一致),默认的步长是
1
,如果选取的方向和步长的方向不一致,无法选取出数据。
str2 = "abcdefg"
print(str2[1])
print(type(str2[1]))
print(str2[0: 3: 2]) # ac
print(str2[0:3]) # abc
print(str2[0:-2]) # abcde
print(str2[1:7]) # bcdefg
print(str2[4:10]) # efg
print(str2[:10]) # abcdef 如果开始不写,那么默认从0开始,
# 结尾超过了下标max,默认选取到最后
print(str2[0:]) # abcdef 如果结尾不写,那么默认选取到最后
print(str2[-1:-4:-1]) # gfe
查找
find()函数
检测某个子串是否包含在这个字符串中,从左侧查找,在则返回子串在字符串中的起始位置下标,否则返回-1
语法:字符串序列.find(子串, 开始位置下标,结束位置下标)
当开始下标和结束下标未填写的时候,那么就默认是整个字符串
mystr = "hello tom jack hello python"
print(mystr.find("om")) # 7
print(mystr.find("om", 0, -1)) # 7
print(mystr.find("oms", 0, -1)) # -1
index()函数
检测某个子串是否包含在这个字符串中,从左侧查找,在则返回子串在字符串中的起始位置下标,否则报错
语法:
字符串序列.find(子串, 开始位置下标,结束位置下标)
当开始下标和结束下标未填写的时候,那么就默认是整个字符串
mystr = "hello tom jack hello python"
print(mystr.index("om")) # 7
print(mystr.index("om", 0, -1)) # 7
# print(mystr.index("oms", 0, -1)) # 报错
count()函数
统计子串在起始位置和结束位置之间的出现次数
语法:
字符串序列.find(子串, 开始位置下标,结束位置下标)
当开始下标和结束下标未填写的时候,那么就默认是整个字符串
mystr = "hello tom jack hello python"
print(mystr.count("hello")) # 2
print(mystr.count("om", 0, -1)) # 1
print(mystr.count("oms", 0, -1)) # 0
rfind()函数
和find()函数是一致的,只不过是从右侧开始查找
mystr = "hello tom jack hello python"
print(mystr.rfind("hello")) # 15
rindex()函数
和index()函数的用法是一致的,只不过是从右侧开始查找的
mystr = "hello tom jack hello python"
print(mystr.rindex("hello")) # 15
修改
replace()函数
替换,
字符串序列.replace(旧子串,新子串,替换次数)
替换次数大于子串出现次数,替换次数则为子串出现次数。
mystr = "hello tom jack hello python"
print(mystr.replace("hell", "ni", 1))
# nio tom jack hello python
print(mystr.replace("hell", "ni", 2))
# nio tom jack nio python
print(mystr.replace("jack", "lili", 10))
# hello tom lili hello python
split()函数
分割,分割字符丢失,返回一个列表,
字符串序列.split(分割字符,num)
num分割字符次数,将会返回num+1个数据
mystr = "hello tom jack hello python"
list1 = mystr.split("jack")
print(list1) # ['hello tom ', ' hello python']
list2 = mystr.split("o", 2)
print(list2) # ['hell', ' t', 'm jack hello python']
join()函数
用一个字符或者子串合并字符串,即是将多个字符串合并成一个新的字符串
字符或子串.join(多字符串组成的序列)
mylist = ["aa", "bb", "cc"]
mytuple = ("aa", "bb", "cc")
myset = {"aa", "bb", "cc"}
print("00".join(mylist)) # aa00bb00cc
print("..".join(mytuple)) # aa..bb..cc
print("..".join(myset)) # aa..bb..cc
capitalize()函数
将字符串里面的第一个字符转换为大写的
mystr = "hello tom jack hello python"
print(mystr.capitalize())
# Hello tom jack hello pythonpython
title()函数
将每个单词的首个字母换成大写的
mystr = "hello tom jack hello python"
print(mystr.title())
# Hello Tom Jack Hello Python
lower()函数
将字符串中的大写转为小写
upper()函数
将字符串中的小写转为大写
mystr = "Hello Tom Jack Hello Python"
print(mystr.lower())
# hello tom jack hello python
print(mystr.upper())
# HELLO TOM JACK HELLO PYTHON
lstrip()、rstrip()、strip()函数
lstrip函数删除字符串左侧空白字符,rstrip删除字符串右侧空白字符,strip函数删除两侧空白字符
mystr = " Hello Tom Jack Hello Python "
print(mystr.rstrip())
# Hello Tom Jack Hello Python
print(mystr.lstrip())
# Hello Tom Jack Hello Python(后面还有一段空格)
print(mystr.strip())
# Hello Tom Jack Hello Python
ljust()、rjust()、center()
返回一个原字符串左(右、居中)对齐,并使用指定字符填充到对应长度
ljust\rjust\center(长度, 填充字符)
填充字符默认是空格
myStr = "Hello"
print(myStr.ljust(7, ".")) # Hello..
print(myStr.rjust(7, ".")) # ..Hello
print(myStr.center(7, ".")) # .Hello.
判断
startswitch()函数
判断是否以指定的字符串开头,是返回True,否则返回False
字符串序列.startswitch(子串,开始位置下标,结束位置下标)
endswitch()函数
判断是否以指定的字符串结尾,是返回True,否则返回False
字符串序列.endswitch(子串,开始位置下标,结束位置下标)
myStr = "Hello"
print(myStr.startswith("H", 0, -1)) # True
print(myStr.endswith("o", 0, 10)) # True
print(myStr.endswith("o")) # True
isalpha()函数
判断一个字符串至少含有一个字符并且所有的字符都是由字母组成的则返回True,否则返回False
isdigit()函数
判断字符串只含有数字的则返回True,否则就返回False
isalnum()函数
如果一个非空字符串所有的字符都是由字母或者数字组成的则返回True,否则返回False
isspace()函数
判断一个字符串是否含有空格,是的话返回True,否则返回False
myStr = "Hello"
myStr2 = "123abc"
print(myStr.isalpha()) # True
print(myStr2.isdigit()) # False
print(myStr2.isalnum()) # True
print(myStr.isspace()) # False