1.字符串 str (用''or“”表示)
字符串中每个组成部分为字符,python中只要是用引号引起来的都叫字符串
---特征:
加法
n1 = "alex" n2 = "sb" n4 = "db" n3 = n1 + n2 + n4 print(n3) alexsbdb
乘法
n1 = "alex" n2 = n1 * 4 print(n2) alexalexalexalex
---capitalize() 首字母大写
---casefold() 将所有的字母变小写,但是其功能更全,可以将很多未知的相应变成小写
---lower() 将所有的字母变小写,功能没有casefold齐全
---center(self,width,fill = None) self可以不用管,但是width必须赋予一个数
test = 'mada' # 表示设置宽度,并将内容居中
v = test.center(20,'*') # 20代指总长度
# *用来空白位置填充,只能为同一个字符,可有可无
print(v)
********mada********
---count(self,sub,start=None,end=None) 去字符串中寻找,寻找子序列的出现次数
---encode(self,encode='utf-8',errors='strict')
---endwith(self,suffix,start=None,end=None)表示以什么结尾
---startwith(self,suffix,start=None,end=None)表示以什么开始
---find(self,sub,start=None,end=None) # 未指定开始结束时,从开始往后找,找到第一个后,获取其位置
---index(self,sub,start=None,end=None)# 作用同find,但是索引不到内容时会报错,因此可以忽略该用法
---format(*args,**kwargs)
test = 'i am {name},age{a}'
# format 作用为格式化,将一个字符串中的占位符替换为指定的值
v= test .format(name='mada',a=18)
print(v)
i am mada,age 18
---format_map(self,mapping)
test = 'i am {name},age{a}'
# format_map 作用也为格式化,但是传入的值指定为{'name':'mada','a':19}
v= test .format_map('name':'mada','a':19)
print(v)
i am mada,age 18
---isalnum() # 判断字符串中是否只包含字母和数字
---isalpha() # 判断字符串中是否是字母、汉字,是返回true,否返回false
---isdecimal() <isdigit()<isnumeric()# 都可用来判断当前输入是否是数字,但isdigit()可以判断@2之类的数字;isnumeric()可以判断@2、二之类的数字。
---isprintable()判断是否存在不可显示的字符
如:# 制表符
#
换行
---isspace()判断是否‘全部’是空格
---istitle()判断是否是标题
---title()将内容转换为标题形式
--join()将字符串中的每一个元素按照指定分隔符进行拼接
v = "_".join(test)
print(v)
你_是_风_儿_我_是_沙
---center(),ljust(),rjust(),zfill()
v = test.center(20,'*') # 将字符串放中间,两边填充20个* print(v) v = test.ljust(20,'*') # 将字符串放左边,右边填充20个* print(v) v = test.rjust(20,'*') # 将字符串放右边,左边填充20个* print(v)
v = test.zfill(20) # 只能填充0
print(v)
******马达真是棒棒哒*******
马达真是棒棒哒*************
*************马达真是棒棒哒
0000000000000马达真是棒棒哒
---islower()判断是否全部是小写
---lower() 转换为小写
---isupper()判断是否全部是大写
---upper()转换为大写
# 以下三者作用都为移除指定字符串,,有限最多匹配,可去除
---lstrip()去除字符串左右空白
---rstrip()去除字符串右空白
---strip()去除字符串左空白
---translate()对应关系替换
test = "aeiou"
test1 = "12345"
v = "asiduf"
m = str.maketrans("aeiou", "12345")
new_v = v.translate(m)
print(new_v)
1s3d5f
---rpartition()将字符串按照分隔符分割为三部分
test = "testasdsddfg"
v = test.partition('s')
print(v)
v = test.rpartition('s')
print(v)
('te', 's', 'tasdsddfg')
('testasd', 's', 'ddfg')
---split()、rsplit()分割为指定个数,不指定时默认全部分割,但是不显示分隔符
v = test.split('s',2)
print(v)
['te', 'ta', 'dsddfg']
---splitlines()分割,只能根据,true,false:决定是否保留换行符
test = "asdfadfasdf
asdfasdf
adfasdf"
v = test.splitlines(False)
print(v)
v = test.splitlines(True)
print(v)
['asdfadfasdf', 'asdfasdf', 'adfasdf']
['asdfadfasdf
', 'asdfasdf
', 'adfasdf']
---startswith()endswith()以xxx开头,以xx结尾
---swapcase()大小写转换,大写变小写,小写变大写
---isidentifier()字母,数字,下划线 : 标识符 def class
a = "def"
v = a.isidentifier()
print(v)
True
---replace()将指定字符串替换为指定字符串
test = "alexalexalex"
v = test.replace("ex",'bbb')
print(v)
v = test.replace("ex",'bbb',2)
print(v)
albbbalbbbalbbb
albbbalbbbalex
......
###################### 掌握7个基本魔法 ######################
# join # '_'.join("asdfasdf")
# split
# find
# strip
# upper
# lower
# replace
###################### 5个灰魔法 ###########################
1.for循环
# for 变量名 in 字符串:
# 变量名
# break
# continue
test = "马达真是棒棒哒" index = 0 while index < len(test): v = test[index] print(v) index += 1 print('=======') 马 达 真 是 棒 棒 哒 =======
for item in test: print(item) break 马 # 输出一个马之后,break终止所有循环,结束 for item in test: continue print(item) # 什么也没有输出,因为continue会跳出当前循环,怎么也到不了print这一步
2.索引,下标,获取字符串中的某一个字符
test = "马达真是棒棒哒" v = test[3] print(v) 是
3.切片
test = "马达真是棒棒哒" v = test[0:-1] print(v) 马达真是棒棒
4.获取长度:len获取当前字符串中由几个字符组成
v = len(test) print(v) 7
5.获取连续或不连续的数字
python3中只有for循环时,才一个一个创建
# r1 = range(10)
# r2 = range(1,10)
# r3 = range(1,10,2)
# 帮助创建连续的数字,通过设置步长来指定不连续
v = range(0, 100, 5) for item in v: print(item) 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
###################### 1个深灰魔法 ######################
字符串一旦创建,不可修改
一旦修改或者拼接,都会造成重新生成字符串
name = "mada" age = "18" info = name + age print(info)