字符串类型

字符串定义:

用来记录事物状态的性质:
比如:名字
name = 'Tom'

字符串特性:

不可变!
字符串:可以通过索引取子字符,也是字符串。
字符串无论符号、数字还是文字,都可以使用内置方法,字符串文字不会发生变化,类型依然属于字符串

1、需要掌握的功能

1.1、strip,lstrip,rstrip

str.strip() 括号中可以没有参数,默认清除空格,如果有参数,则清除参数值(参数不带空格,不清除空格)
msg = " ****helle**** "
print(msg.strip()) #去除空格
print(msg.lstrip()) #去除左边空格
print(msg.rstrip()) #去除有点空格
print(msg.strip(" *")) #去除空格和符号
"""
****helle****
****helle**** 
 ****helle****
helle
"""

1.2、lower ,upper

msg = "Hello"
print(msg.upper())#全部变成大写
print(msg.lower())#全部变成小写
"""
HELLO
hello
"""

1.3、startswith,endswith

msg = "nihaoa"
print(msg.startswith("ni")) #判断开头是否为ni
print(msg.endswith("a")) # 判断结尾是否为a
"""
True
True
"""

1.4、format

print("my name is %s age is %s"%("engo",18)) #位置固定
# my name is engo age is 18

print("my name is {x} my age is {y}".format(x="egon",y=18)) #可以赋值
#ma name is egon my age is 18

print("my name is {} my age is {}".format("egon",18,20))#不赋值则顺序填充,多一个值不报错,会根据有几个字符串格式化占位符,然后使用几个format后面的值,顺序赋值
# my name is egon my age is 18

print("my name is {0} my age is {1} 今年{1}".format("egon",18)) #花括号中填写数字取值为format中的索引,此方法format参数少于占位符也不会报错,按照索引取值可以重复取到值
# my name is egon my age is 18 今年18

x = 111
y = 222
print(f"my name is {x} my name is {y}") # f 的字符格式化,提前定义变量
# my name is 111 my name is 222

1.5、split(默认左到右切片),rsplit(右切片)

找不到切片参数不会报错,输出原本字符串

msg = "x,y,z,b"

print(msg.split())#split无参数,按照空格切片,没有空格则不会切片
# ['x,y,z,b']

print(msg.split(",")) #有参数按照所给参数的符号切片
# ['x', 'y', 'z', 'b']

print(msg.split(",",1)) #左到右切一次
# ['x', 'y,z,b']

print(msg.rsplit(",",1)) #右到左切一次
# ['x,y,z', 'b']

1.6、join (可以拼接字符串,列表,元组)

join 拼接字符,需要赋值给全新的一个变量名
join 拼接列表,全为字符串,存在数字报错
join 也可以连接元组,全为字符串,存在数字报错

#  拼接输出结果为字符串类型
print(":".join(["aaa", "bbb", "ccc"])) # 根据句点符前面的""中字符拼接字符串
# aaa:bbb:ccc                 返回类型:字符串

name = ("aaa","bbb","123")
print("-".join(name))
# aaa-bbb-123

name ={"nihao":"wohao","aaa":"ccc"}
print("-".join(name)) #字典拼接为默认键的拼接
# nihao-aaa

name1= {'xiaoming':"18",'xiaohua':"20"}
print('+'.join(name1.values())) #拼接为键后的值 1820  拼接整型会报错

1.7、replace(字符串切换,不改变原字符)

会受到空格的影响,字符中间有空格,则判定不符合切换条件

msg = " egon is hhh egon xx egon"

print(msg.replace("egon","EGON")) # 默认把前面值全部改成后面的值
# EGON is hhh EGON xx EGON

print(msg.replace("egon","EGON",1)) # 后面带数字,修改具体数量参数
# EGON is hhh egon xx egon

1.8、isdigit:判断字符串是否数字组成

isdecimal() :判断字符串是否数字组成 (建议)
    
msg = "123"
print(msg.isdigit()) #判断字符串是否数字组成    True

number = "①"
print(number.isdigit())   #	True
print(number.isdecimal()) #	False

2、需要了解的功能

2.1、find(找字符,返回索引值) ,rfind(从右找字符,返回索引值) , index (找不到报错), rindex , count(统计字符串的出现次数)

msg = "hello egon xxx egon yyy egon zzz"
print(msg.find("egon",0,7)) # 查找值在哪个位置 找不到返回 -1 ,后可跟查找范围
# -1

print(msg.find("egon",0,10))
# 6

print(msg.find("egon")) #不规定查找范围,全部查询
# 6

print(msg.rfind("egon")) #从右开始查找
# 24

print(msg.index("egon")) #查找,找不到报错
# 6

print(msg.rindex("egon")) #从右开始查找,查不到报错
# 24


print(msg.count('x')) # 统计字符串的出现次数 
# 3

2.2、center(居中),ljust(左对齐).rjust(右对齐),zfill(指定范围,用0填充)

print("nihao".cenetr(50)) # 50范围内剧中 
#       nihao        

print("nihao".center(9,"*"))  
#  **nihao**  

print("nihao".ljust(50)) # 50范围左对齐 ,填充空格

print('nihao'.ljust(50,"*")) #50范围字符串左对齐,填充 * 在右

print("nihao".rjust(50)) # 50范围字符串右对齐 ,填充 * 在左

print("nihao".rjust(50,"*"))# 50范围右对齐,填充"*"

print("nihao".zfill(10)) # 50范围左边填充0  
# 	0000000000nihao 类似rjust

3.3、captalize(单词首字母变大写,其他前部改成小写),swapcase(小写变大写,大写变小写),title(每个单词首字母大写,其余小写)

msg = "nihao shijie"

print(msg.capitalize()) #只有第一个字母变成大写 Nihao shijie

msg1 = "Ni Hao" # 两极反转,大小写互换

print(msg.swapcase()) #nI hAO

msg2 = "ni hao"

print(msg2.title()) # Ni Hao

3.4、is 数字系列

isdigit() #变量值是字节串或者字符串类型并且包含的阿拉伯数字,结果才为真

isdecimal()#变量值是字符串类型并且包含的阿拉伯数字,结果才为真

isnumeric() #阿拉伯数字,中文数字,罗马数字,结果都为真
number1 = b"4"
number2 = "4"
number3 = "四"
number4 = "Ⅳ" 

print(number1.isdigit()) #True
print(number2.isdigit()) #True
print(number3.isdigit()) #False
print(number4.isdigit()) #False

print(number2.isdecimal()) #True
print(number3.isdecimal()) #False
print(number4.isdecimal()) #False

print(number2.isnumeric()) #True
print(number3.isnumeric()) #True
print(number4.isnumeric()) #True

3.5、 is其他

isalnum()#判断字符串字母数字组成

msg = "nihao123"
print(msg.isalnum) # True 带空格或者其他字符都会报错

isalpha()#判断字符串字母组成

msg = "Nihao" 
print(msg.isalpha()) # True 带空格会报错

islower()#判断是否全部小写组成,带空格或者字符也为真

msg = 'a bcd'
print(msg.islower()) # True

isupper()#判断是否全部大写组成,带空格或者字符也为真

msg = 'ABC D'
print(msg.isupper()) # True

字符串总结:

存一个值,有序,不可变类型
posted @ 2021-03-29 20:32  此用户名不可用  阅读(111)  评论(0)    收藏  举报