python中str是什么_python的str()字符串类型的方法详解
字符串一旦创建,不可修改,一旦修改或者拼接,都会造成重新生成字符串,因为内存存数据是一个挨着一个存的,如果增加一个字符串的话,之前的老位置只有一个地方,不够,这是原理性的东西,在其他语言里面也一样
7个必须要背会的方法
join
split
find
strip
upper
lower
replace
4个必须会的灰魔法
len
for循环
索引
切片
1.字符串 str 所有的功能都放在 str里面了
n1 = "frank" n2 = 'root' n3 = """eric""" n4 = '''tony'''
双引号 单引号 三个双引号 三个单引号 引起来的都是字符串
字符串的加法
>>> n1 = "frank"
>>> n2 = "sb"
>>> n3 = "db"
>>> n4 = n1 + n2 +n3>>> print(n4)
franksbdb>>>字符串的乘法>>> n1 = "frank"
>>> n3 = n1 * 6
>>> print(n3)
frankfrankfrankfrankfrankfrank
字符串类型的魔法,有太多种了,下面列举几个常用的
1.capitalize() 魔法是首字母大写 [ˈkæpɪtəlaɪz] 用大写字母写
name = "gouguoqi"v=name.capitalize()print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
Gouguoqi
2.casefold()
3.lower() 这2个魔法都是把字符串中的大写字母变成小写
casefold 最牛逼,它可以把未知的字符串的的对应关系也能变小写,lower只能我们常用的英文变小写
upper 使字符串全部变成大写
name = "GOGUoQi"v1=name.casefold()print(v1)
v2=name.lower()print(v2)
C:\python35\python3.exe D:/pyproject/day10/1.py
goguoqi
goguoqi
4.center(self, width, fillchar=None)
跟ljust (左对齐) rjust(右对齐)相对应
self 这个可以忽略,width,这种后面必须要带一个值,就相当于买东西必须要带钱,fillchar=None表示默认是None sub代表子序列
#center功能是将字符串居中显示
#20 代表宽度,- 代表的是空余的地方用什么填充,只能是一个字符,默认是空格
name = "gouguoqi"v= name.center(20,"-")print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py------gouguoqi------
5.count(self, sub, start=None, end=None) [kaʊnt] 计数
计算一个指定的字符出现了几次,可以是多个字符
sub代表子序列
专业说法:在字符串中寻找子序列出现的次数,可以指定从第几个字符串开始,第几个字符串结束的范围,0为第一个字符 比如 1,4 表示的是从 第二个字符到第第五个字符之间的范围,第五个字符不算
name = "gouguoqi"v= name.count("u")print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py2name= "gouguoqigougoqi"v= name.count("go")print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py3
从第3个位置到第5个位置中u这个字符出现了几次,不算第五个位置,因为是个区间
黄色为区间范围内
name = "tyuiop"v= name.count("u",2,4)print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py1
6.encode
7.decode
8.endswith(self, suffix, start=None, end=None)
以什么结尾,判断结果是否为真或者假
name = "beiye"v= name.endswith("e")print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
True
从1到3的范围内,以i结尾,为真
0为第一个字符,因为是区间的概念,所以第四个字符不算,就是第四个字符往左的
name = "beiye"v= name.endswith("i",1,3)print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
True
9.starswith(self, suffix, start=None, end=None)
以什么字符串开头 判断结果是否为真或者假
name = "beiye"v= name.startswith("b")print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
True
0为第一个字符,在第二个字符和第四个字符这个范围,是i开头,返回正确
name = "beiye"v= name.startswith("i",2,4)print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
True
10.find(self, sub, start=None, end=None) *****重要
还有一个index的方法,不过这个找不到的话程序直接崩溃了,所以肯定是不用的,find找不到是返回-1
从开始往后找,找到第一个字符之后,获取其位置就不往后找了
name = "beiyebeiyet"v= name.find("t")print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py10
在2到6的区间内找t这个子序列,因为找不到所以返回 -1
name = "beiyebeiyet"v= name.find("t",2,6)print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py-1
11.format(self, *args, **kwargs) [ˈfɔ:mæt] 格式*****重要
格式化,将一个字符串中的占位符替换为指定的值
test = "i am {name},age {a}"
print(test)
v= test.format(name='gouguoqi',a='28')print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
i am {name},age {a}
i am gouguoqi,age28
用字典的方式传进去,前面得加**才行
test = "i am {name},age {a}"
print(test)
v= test.format(**{"name":"gouguoqi","a":28})print(v)
C:\python35\python3.exe D:/pyproject/day12列表/dict-way.py
i am {name},age {a}
i am gouguoqi,age28
如果中括号里面什么都不写,写{0} {1} {2},代表第一个占位符,第二个占位符,第三个占位符
下面就不用再写name=啥了。直接写值就行了,写3个值,就对应上面3个占位符,依次从左向右
test = "i am {0} age {1} weight {2}"
print(test)
v= test.format('gouguoqi','28','90kg')print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
i am {0} age {1} weight {2}
i am gouguoqi age28 weight 90kg
test = "猥琐的{0},最喜欢在{1}地方干{2}"name= input("请输入你的名字:")
place= input("请输入你经常去的地方:")
like= input("请输入你平时的爱好:")
v=test.format(name,place,like)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
请输入你的名字: 修电脑
请输入你经常去的地方: 网吧
请输入你平时的爱好: 撸管
猥琐的修电脑,最喜欢在网吧地方干撸管
12.format_map(self, mapping)
format_map也是格式化,传入的值必须是这样的格式{ "name": 'gouguqi',"a": 28 }
这个格式就是一个字典格式
test = "i am {name} age {a}"
print(test)
v= test.format_map({ "name": 'gouguqi',"a": 28})print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
i am {name} age {a}
i am gouguqi age28
(学了后面才发现,这里的参数就是字典类型)
(v = test.format(**{"name":"gouguoqi","a":28}))而上面的format用字典的方式得加**
13.isalnum(self)
判断字符串中只能由字母和数字,不能有特殊符号
test = "4567ghjkk_!"v=test.isalnum()print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
False
test= "4567ghjkkKP"v=test.isalnum()print(v)
C:\python35\python3.exe D:/pyproject/day10/1.py
True
14.isalpha(self)
Return True if all characters in S are alphabetic(字母)
and there is at least one character(至少一个字母) in S, False
otherwise.
翻译结果:字符串里面都是字母,并且至少是一个字母,结果就为真,(汉字也可以)其他情况为假
S = "2"v=S.isalpha()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
S = "IIKk9123mm"v=S.isalpha()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
S = "IIKkkkkkmnbvgghjj"v=S.isalpha()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
S = "IIKkkkkkmn汉字ghjj"v=S.isalpha()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
15.isdecimal(self) [ˈdesɪml] 十进制的
判断当前字符串是否为数字
Return True if there are only decimal characters (十进制字符) in S,
False otherwise.
S = "65434334000000000"v=S.isdecimal()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
S = "66k"v=S.isdecimal()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
16.isdigit(self) [ˈdɪdʒɪt] 数字的
判断字符串是否是数字,特殊的数字也可以
这个比isdecimal更牛逼些,一些特殊的数字也返回True
Return True if all characters in S are digits(数字)
and there is at least one character in S, False otherwise.
S = "66①56"v1=S.isdecimal()
v2=S.isdigit()print(v1,v2)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False True
17.isnumeric(self) [nju:'merɪk] 数字的
判断如果是数字的数值的就返回为真,比isdigit isdecimal 更牛逼,这个也能识别特殊的数值,也能识别中,isdigit能识别特殊的值但是不支持中文 ,isdecimal只能是十进制的,特殊的不行
以后工作中常用的就是isdecimal,因为这就是判断十进制数字的,特殊的值和中文并不能做运算,所以不常用
Return True if there are only numeric(数字的,数值的) characters in S,
False otherwise
S = "66①56"v1=S.isdecimal()
v2=S.isdigit()
v3=S.isnumeric()print(v1,v2,v3)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False True True
S = "二"v1=S.isdecimal()
v2=S.isdigit()
v3=S.isnumeric()print(v1,v2,v3)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False False True
18.isprintable(self) [ˈprɪntəbl] 可打印的
如果我们能看到真实的可以打印出来的东西就是True
像\t \n这种我们肉眼不可显示的东西是打印不出来的,所以在包含这些的时候就是false
Return True if all characters in S are considered
printable in repr() or S is empty, False otherwis
S = "556546 ___ 二&*、"v=S.isprintable()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
S = "556546sd\tf"v=S.isprintable()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
S= "55\n6546sdf"v=S.isprintable()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
19.isspace(self)
判断你的字符是否全部是空格,一个空格也行,多个空格也行,如果全部是空格就为真,不全部是空格就是假,什么都不写也为假
Return True if all characters in S are whitespace
and there is at least one character in S, False otherwise
一个空格
S = " "v=S.isspace()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
多个空格为真
S = " "v=S.isspace()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
什么都不写为假
S= ""v=S.isspace()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
20.istitle (self) [ˈtaɪtl] 标题
判断知否是标题(标题是每个字符串的首字母大写)
S = "follow uncased characters and lowercase characters only cased on"v1=S.istitle()print(v1)
v2=S.title() 这个方法是把字符串中的首字母变为大写,也就是转换成标题print(v2)
v3=v2.istitle()print(v3)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False 判断v1 结果是v1 不是标题
Follow Uncased Characters And Lowercase Characters Only Cased On把v1转化成标题
True 再次判断v3,结果是标题了
21.title(self)
这个方法是可以把字符串的首字母变成大写,也就是变成标题
S = "my name is gouguoqi"v=S.title()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
My Name Is Gouguoqi
22.isupper(self) uppercase ['ʌpəˌkeɪs] 大写字母
判断全部是大写字母才是真,至少有一个字符,否则为假
Return True if all cased characters in S are uppercase and there is
at least one cased character in S, False otherwise
S = "GOUGUOQI"v=S.isupper()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
其中有一个字符为小写,结果就是false了
S = "GOUgUOQI"v=S.isupper()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
23.islower(self) lowercase 小写字母
判断全部是小写字母才是真,至少有一个字符,否则为假
Return True if all cased characters in S are lowercase and there is
at least one cased character in S, False otherwise
S = "woaini"v=S.islower()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
也可以包含特殊符号和数字
S = "woaini*&^%$#@!998"v=S.islower()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
就是不能有大写字母,有大写字母就为假
S = "woaini*&^%$#@!998Y"v=S.islower()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
24.join(self, iterable)*****非常重要的方法
将字符串中的每个元素按照指定分隔符进行拼接
Return a string which is the concatenation of the strings in the
iterable. The separator between elements
is S
separato [ˈsepəreɪtə(r)] 分隔符
S = "我爱学习"v= " ".join(S)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
我 爱 学 习
S = "我爱学习"v= "_".join(S)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
我_爱_学_习
25.ljust(self, width, fillchar=None) left 左对齐
给字符串一个宽度,使字符串左对齐,右边用指定的字符填满,默认是空格
Return S left-justified in a Unicode string of length width. Padding is
done using the specified fill (使什么填满)character
(default is a space).
S = "woaini"v= S.ljust(20)print(v
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
woaini
用*来填充空白处
S = "woaini"v= S.ljust(20,'*')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
woaini**************
26.rjust right 右对齐
S = "woaini"v= S.rjust(20)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
woaini
用*来填充空白处
S = "woaini"v= S.rjust(20,'*')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py**************woaini
27.lower
使字符串变成小写
S = "GouGuoQi"v=S.lower()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gouguoqi
28.upper使字符串变成大写
S = "gouguoqi"v=S.upper()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
GOUGUOQI
29. lstrip 去除字符左边的空格(包括\t \n),还可以去除指定的字符串
移除指定字符的时候,按照字符最多匹配
也叫按照最长公共子序列匹配,什么是最长公共子序列
beiye
woaiye iye就是最长公共子序列
Return a copy of the string S with leading whitespace removed.
If chars is given and not None, remove characters in chars instead.
given 指定的
S = "gouguoqi"v=S.lstrip()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gouguoqi
去除左边的g
S = "gouguoqi"v= S.lstrip('g')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
ouguoqi
30.rstrip 去除字符串右边的空格 (包括\t \n)还可以去除指定的字符串
S = "gouguoqi"v=S.rstrip()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gouguoqi
去除右边的qi
S = "gouguoqi"v= S.rstrip('qi')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gouguo
31.strip *****重要
去除字符串左右两边的空格(包括\t \n)还可以去除指定的字符串
S = "goug uoqi"v=S.strip()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
goug uoqi
去除开头和结尾
S= "gouguoqi"v= S.strip('goi')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
uguoq
32.maketrans(self, *args, **kwargs)
33.translate(self, table)
32和33是一起用的,首先得创建一个对应关系
S1和S的字符是一一对应的
v是定义了一个字符串的变量
m是创建了一个对应关系
n是v这个变量用translate的这个方法,以对应关系是("aeiou","12345")进行替换
意思是字符串中的a会用1替换,e会用2替换,i会用3替换,o用4替换,u用5替换
#S = "aeiou"#S1 = "12345"
v = "asdfifkjsedfkom,s.u.sdfasdfa"m= str.maketrans("aeiou","12345")
n=v.translate(m)print(n)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
1sdf3fkjs2dfk4m,s.5.sdf1sdf1
34. partition(self, sep) [pɑ:ˈtɪʃn] 分割,分开 *****(会用到)
用指定的字符分割,找到第一个指定的分割字符之后就不再继续找了,直接把字符串分成3部分,第二部分是分割字符本身,剩下的就是一组,开头是一组,这个方法只能把字符串分割成3份
S = "tesdfsffgbnhjjsghj"v= S.partition('s')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
('te', 's', 'dfsffgbnhjjsghj')
35. rpartition 从字符串右边开始以指定的字符分割符进行分割
也是只能分割成3份
S = "tesdfsffgbnhjjsghj"
#v = S.partition('s')#print (v)
v1 = S.rpartition('s')print(v1)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
('tesdfsffgbnhjj', 's', 'ghj')
36.split [splɪt] 分裂 分开 *****重要
不加参数默认是以指定的分割字符分割成n份,但是不显示分割字符
S = "tesdfsffgbnhjjsghj"v2= S.split('s')print(v2)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
['te', 'df', 'ffgbnhjj', 'ghj']
加了一个参数2,代表以s这个字符为分隔符,进行分割2次操作,后面就不分割了
如果是3的话,就是分割3次,后面就不分割了
S = "tesdfsffgbnhjjsghj"v2= S.split('s',2)print(v2)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
['te', 'df', 'ffgbnhjjsghj']
37. rsplit 从字符串右边开始,以指定的分割字符串进行分割,不加参数默认是以指定的分割字符分割成n份,但是不显示分割字符,跟split用法一致,只不过这个是从右边开始
S = "tesdfsffgbnhjjsghj"v3= S.rsplit('s',2)print(v3)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
['tesdf', 'ffgbnhjj', 'ghj']
正则表达式也可以进行分割,可以自己设置是否想要显示分割字符,自己来定的
正则表达式是partiton和split的这2个方法的功能合集
比如要计算一大堆运算的结果
9*7/5+9-9/3*1
先拿2个做例子吧
9*7
如果我用partition这个方法进行分割,得到的结果是
9 * 7
如果我用split这个方法进行分割,得到的结果是
9 7
38. splitlines 以换行为分割符进行分割,默认参数是False,True参数代表保留换行符
Return a list of the lines in S, breaking at line boundaries.
Line breaks are not included in the resulting list unless keepends
is given and true
S = "sdfggh\nqe\nedd"v=S.splitlines()print(v,)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
['sdfggh', 'qe', 'edd']
S = "sdfggh\nqe\nedd"v=S.splitlines(True)print(v,)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
['sdfggh\n', 'qe\n', 'edd']
39. swapcase(self)
把大写变小写,把小写变大写
Return a copy of S with uppercase(大写) characters converted to lowercase(小写)
and vice versa
S = "GOUguoQI"v=S.swapcase()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gouGUOqi
40. replace(self, old, new, count=None) 替换 *****重要
S = "gouguoqi"v= S.replace('o','n')print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gnugunqi
后面加参数1,表示替换1个,2,表示只替换2个,3,表示只替换3个
S = "gouguoqi"v= S.replace('o','n',1)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
gnuguoqi
#######################################灰魔法--开始#############################
1.索引,下标,获取字符串中的某一个字符,0为第一个字符串
S = "beiy"v=S[0]print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
b
2.获取一个范围内的字符串叫:切片
S = "beiy"v= S[0:2] 这个范围是大于等于0小于2print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
be
S = "beiy"v= S[0:-1] -1代表字符串的结尾print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
bei
3.len 获取字符串由几个字符组成
S = "beiye"v=len(S)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py5
在python2.7里面中文拿到的结果就不是下面的3了
S = "苗经理"v=len(S)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py3
如果想让字符串一个一个的输出该怎么写,用我们之前学过的就是可以用while来写
test = "北爷冲我来"index=0while index
v=test[index]print(v)
index+=1
print ('####end####')
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
北
爷
冲
我
来####end####
4.for循环就更简单了
test = "北爷冲我来"
for n in(test):print(n)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
北
爷
冲
我
来
break结束当前循环
test = "北爷冲我来"
for n in(test):print(n)breakC:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
北
continue 满足条件后不继续往下,回到for开始继续循环,然后又满足条件了,又回去继续循环,所以print n 永远打印不出来,直到循环结束也不会执行continue下面的print,也就是终止当前循环,开始下一次循环
test = "北爷冲我来"
forn in(test):
continueprint
(n)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
5.range 创建连续的数字,也可以通过指定步长创建不连续的数字
在python2.7里面,range可以直接帮我们打印出来范围内的数字,这个就有缺点了,比如我打印出来1万个数字,它得先把一万个数字打印出来,这个时候我们得等着了。并且占用很多内存
在python2.7中有一个xrange跟python中的range效果是一样的,python3中,直接就保留了range这一种了,相当于优化升级了
在python3里面,range创建之后,并不会把这些数字打印出来,而是在什么时候调用的时候才去一个一个的打印,比如我for循环调用的时候才会挨个打印,这样就省内存了
v = range(10)print(v)for n in(v):print(n)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
range(0,10)
01
2
3
4
5
6
7
8
9
range的范围是大于等于左边的数字,小于右边的数字,后面可以加参数指定“步长”,步长就是几个位置算一步(是一组),下面的10,31就是指的大于等于10,小于31的里面的数字,5就是步长
v = range(10,31,5)print(v)for n in(v):print(n)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
range(10, 31, 5)10
15
20
25
30
把数字按照倒叙排列
S = range(10,0,-1)for n inS:print(n)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py10
9
8
7
6
5
4
3
2
1
练习:让用户输入一堆字符串,我们最终打印出来每个字符串的下标和源每个字符串
S = input('>>>>')
n=len(S) 获取字符串的长度
m=range(n)for item inm:print(item,S[item])
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py>>>>asd
0 a1s2 d
我们在简化一下就是
S = input('>>>>')for item inrange(len(S)):print(item,S[item])
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py>>>>ert
0 e1r2 t
第二种写法
a = input("请输入>>>>")
c=0for n ina:print(c,n)
c+=1
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
请输入>>>>我是
0 我
1 是
7.字符串里面的in操作,判断字符是否在字符串中
S = "abcdef"v= "b" inSprint(v)
C:\python35\python3.exe D:/pyproject/day12列表/dict-way.py
True
###################灰魔法------结束####################在其他的数据类型里面都能用
isidentifier(self) [aɪˈdentɪfaɪə(r)] 标识符
Return True if S is a valid identifier according
to the language definition
字母、数字、下划线
只要符合这3个条件就是标识符,如果写上def class 只要符合标识符的规则,我们就认为真
S = "_123"v=S.isidentifier()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
S= "123"v=S.isidentifier()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
False
S= "sdfsdf"v=S.isidentifier()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
True
expandtabs(self, tabsize=8) 这个可以做(表格对齐)
表示默认以8位一组为分割,如果这8位里面包含了\t,不够的话\t就用几个空格补齐,下面的例子就是
lp234567oiutr0987hggtsjjs
因为默认是8位一组,lp占了2位了所以\t就得用6个空格补全,234567就代表空格
Return a copy of S where all tab characters are expanded using spaces.
If tabsize is not given, a tab size of 8 characters is assumed
S = "lp\toiutr0987hggtsjjs"v=S.expandtabs()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
lp oiutr0987hggtsjjs
因为前面正好是8位,后面\t自己就占8位,也是8个空格
S= "lpoiutr0\t987hggtsjjs"v=S.expandtabs()print(v)
lpoiutr0 987hggtsjjs
再看下面这个,前8位是黄色,后面是四位加一个\t因为是8位一组,所以就用4个空格补齐了
S = "lpoiutr0987h\tggtsjjs"v=S.expandtabs()print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
lpoiutr0987h ggtsjjs
下面我们指定一下 以6位为单位分割
黄色是6个,绿色是6个,所以后面的\t自己就占6位
S = "lpoiutr0987h\tggtsjjs"v= S.expandtabs(6)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
lpoiutr0987h ggtsjjs
遇到\t是一组,因为指定了6位一组,lp只占2位,所以\t就是用四个空格补齐
S = "lp\toiutr0987hggtsjjs"v= S.expandtabs(6)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
lp oiutr0987hggtsjjs
第一组黄色,第二组绿色,都是6位一组,第三组hgg占用了3位,所以\t就是用3个空格补齐
S = "lptoiutr0987hgg\ttsjjs"v= S.expandtabs(6)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
lptoiutr0987hgg tsjjs
用expandtabs这个方法做个表格
S = "username\temail\tpasswd\ngouguoqi\t564039852@qq.com\t123456\nbeiye\t564039852@qq.com\t123456\nmiaoye\t564039852@qq.com\t123456"v= S.expandtabs(20)print(v)
C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py
username email passwd
gouguoqi564039852@qq.com 123456beiye564039852@qq.com 123456miaoye564039852@qq.com 123456
python中str是什么_python的str()字符串类型的方法详解相关推荐
- python标准库random中函数的作用_Python随机函数库random的使用方法详解
Python随机函数库random的使用方法详解 前言 众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为 ...
- python中int转换为时间戳_python日期和时间戳互相转化操作详解
Python中日期格式化是非常常见的操作,Python 中能用很多方式处理日期和时间,转换日期格式是一个常见的功能.Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时 ...
- python中4j什么意思_Python学习:4.数据类型以及运算符详解
运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...
- python的str()字符串类型的方法详解
字符串一旦创建,不可修改,一旦修改或者拼接,都会造成重新生成字符串,因为内存存数据是一个挨着一个存的,如果增加一个字符串的话,之前的老位置只有一个地方,不够,这是原理性的东西,在其他语言里面也一样 7 ...
- python中sleep函数用法_sleep函数函数介绍与使用方法详解
在一些竞猜的网站中,如果我们需要做一个定时执行的功能,比如有一道题,在十秒之内要完成,否则显示"您已超时",如果完成,则跳转到下一道题上面,而这中间有一个十秒的停顿,这样的功能是怎 ...
- python多线程读取数据库数据_Python基于多线程操作数据库相关知识点详解
Python基于多线程操作数据库相关问题分析 本文实例分析了Python多线程操作数据库相关问题.分享给大家供大家参考,具体如下: python多线程并发操作数据库,会存在链接数据库超时.数据库连接丢 ...
- python创建双链表_Python双链表原理与实现方法详解
本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...
- 基于python的贝叶斯分类器_Python实现朴素贝叶斯分类器的方法详解
本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...
- python求乘积_Python实现求笛卡尔乘积方法详解
这篇文章主要介绍了Python实现求笛卡尔乘积的方法,结合实例形式分析了Python计算笛卡尔乘积的原理与实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供 ...
最新文章
- centos怎么切换python版本_centos6更换默认python版本为python3方法
- Linux下C程序的内存映像
- 数据库系统原理(第5章:数据库编程)
- 计算机应用基础演讲怎么开口,计算机应用基础讲课稿
- 【15】万魂杀服务器开发之原始NIO、Mina、Netty使用
- 大型网站架构系列:缓存在分布式系统中的应用
- java生成电子发票_Java电子发票管理系统
- CS61B+CS170
- win7企业版激活秘钥激活kms安装激活教程
- 1g等于多少mb计算机网络,1KB等于多少MB?1G等于多少MB?等于多少kb呢?
- 解读全新闪存FlashSystem 9100
- “云+移动互联时代,2014移动平台高峰论坛”隆重举行
- 微机期末速通---不挂科版
- Pytorch——报错解决:RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace.
- dwf怎么合成一个_油菜素内酯合成基因DWF1、DET2影响毛白杨木质部形成
- Go1.17 快报之标准库越来越注重易用性
- Ubuntu 22.4网易云音乐启动失败处理方法
- oracle dbms_metadata,DBMS_METADATA报错解决方法
- 关于iPhone出现白苹果黑屏现象的修复方法
- 5G网络优化工程师的前景好吗?需求大不大?中级最高高达10000!
热门文章
- 《算法导论》学习笔记——快速排序
- UrlRewriter 伪url的配置
- 无法显示验证码去掉html,如何去除验证码-模版风格-易通免费企业网站系统 - Powered by CmsEasy...
- 控制台应用程序换换为窗体应用_Epic为开发者设计了一套iPhone使用的运动捕捉应用程序...
- zkServer.cmd 闪退
- 解析json数据_Retrofit同时解析JSON和XML数据格式
- 逻辑回归 数据_数据科学中的逻辑回归
- Python | 使用+ =运算符在字符串末尾附加文本
- dataframe数据标准化处理_数据处理中的标准化、归一化究竟是什么?
- 安装gem_Python安装第三方库及常见问题处理方法汇总