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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php什么程度算学会,十天学会PHP - 序1,学会的标准是什么?(20180820-1)

学会的标准是什么十天学会,这种名称难免给人“浮躁”之感,所以要和大家稍作解释。很多同学认为,学会 达到目的,这个看法过于主观,比如想就业、创业、做毕业设计,他们所需要的专业知识差异很大,…

空间皮肤代码_不废话,看我20行代码搞定色块提取与定位…….

点击上方蓝字关注我们微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识问题来由这个问题是谁问我的我已经不记得了,刚开始的时候他发了这张图像给我,让我给他看一下,我当时告诉他转换一下色彩空间提取就好啦&#xff0…

python字符串怎么表示_python中字符串的几种表达方式(用什么方式表示字符串)...

原博文 2018-11-21 18:45 − 说明: 今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式。 python的几种表达方式 1 使用单引号扩起来字符串 >>> my python lession #以单引号将字符串扩...0…

dw如何写php代码提示,DW CS5 jquery代码提示插件

喜欢使用Dreamweaver(业内简称dw)做php开发的朋友应该都知道dw是从6.0开始才支持jquery代码提示的。那么对于电脑上安装的是dw cs5而又需要jquery代码提示的该怎么办呢?将cs5卸了然后安装6吗?这个方法不是很妥,毕竟现在dw cs软件已经是几百兆…

python3.6 django部署_Apache2+Django+Python3.6部署-

本文指导安装Apache2, mod_wsgi 4.6.5, Django2.1,以及安装过程中可能出现的问题及解决方法。1,安装Apache2.4我本机是Ubuntu16.04的系统,如果时CenterOS,使用yum安装就好了.sudo apt install apache2 这个安装一般没有什么问题2,源码编译安装Python3.6源码地址&…

python中文文本分析_python使用snownlp进行中文文本处理以及分词和情感分析 - pytorch中文网...

SnowNLP: 一个简单的中文文本处理库 SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且…

php异步方案,php 伪异步执行实现方法

需求描述:客户端访问php文件,php需要做某个耗时的操作。例如:访问远程接口数据 而客户端不需耗时操作的结果只期望快速得到输出.php本身是不支持异步操作的,可以用子进程的方式模拟异步操作执行,但实现起来比较复杂而且…

python原理与架构_Python:爬虫原理和网页构造

入门网络数据爬取,也就是Python爬虫现实中我们使用浏览器访问网页时,网络是怎么运转的,做了什么呢?首先,必须了解网络连接基本过程原理,然后,再进入爬虫原理了解就好理解的多了。1、网络连接原理…

flutter打包的app有多大_前端大势所趋---Flutter 这篇文章会让你行动起来

Flutter和原生APP的性能对比前言自从今年google IO大会推出flutter跨平台开发框架以来,flutter在各个技术论坛里被吵得如日中天。flutter团队直言flutter可以帮助开发者轻松实现恒定60fps的性能体验。我们知道flutter跨平台的原理是采用dart语言预编译的方式直接编译…

用java创建窗口程序,创建窗口的应用程序

创建窗口的应用程序通过前面的基础知识的学习,已经对ctypes库的基本功能学会了使用,为了加强这种知识训练,以及运用刚学习的知识的快乐,我们来创建一个稍稍复杂一点的应用程序。这个应用程序是所有后面应用程序的基础,…

python前端代码_python前端HTML

超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言,不是一种编程语言,没有逻辑的HTML基础文档结构#声明为HTML5文档#是文档的开始标记和结束的标记,lang设置浏览器语言#定义了网页标题,在浏览器标题栏显示,charset声明编码,否则会出现乱码网页标题…

python爬取b站排行榜_实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列...

从这周开始,每周来一个爬虫小教程,希望对你们有所帮助,这次的目标是B站排行榜至于爬取什么内容,目前感觉就把序号,名称以及评分爬取下来吧(因为我是边写教程边写代码的) 这次需要用到的知识&…

java7优化,让Eclipse在10秒内启动的7个优化提速技巧

大约一个月前,我发表了一篇博客,其中介绍了对Eclipse的爱与恨。 有些人问我如何给Eclipse提速,这篇文章就来讨论这个问题。顺带提一下,这篇文章不是比较IDE,所以不要说你讨厌某个IDE而选择另外一个。这篇文章只是关注如…

python四位的千位百位十位_输入一个四位正整数,使用字符串切片方法,计算出这个数的个位 十位 百位 千位?...

展开全部#includeint main(){ char s[5],s1[9]"千百十62616964757a686964616fe59b9ee7ad9431333433653938个";int i;printf("输入一个四位数:");scanf("%s",s);for(i3;i>-1;i--)printf("%c%c位数:%c\n",s1[ii],s1[ii1],…

css 垂直居中_html中div使用CSS实现水平/垂直居中的多种方式

CSS中的居中,在工作中,会经常遇到。它可以分为水平居中和垂直居中,以下是几种实现居中的方式。以下例子中,涉及到的CSS属性值。.parent-frame { width: 200px; height: 200px; border: 1px solid red; } .child-frame { width…

python同时输出两个数组_python中实现将多个print输出合成一个数组

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

matlab如何实现降维,matlab怎么把矩阵降维

1. matlab如何对一个矩阵 求导而且不降维gradient计算数值梯度。函数F(x,y,。)在(x0,y0,。)的梯度就是函数在该点的导数,通常在数学上记作▽F(x0,y0,。)或gradF(x0,y0,。)。梯度是一个向量, 它的方向是函数在一点变化率…

python线程等待_python3 中 Event.wait 多线程等待

原博文 2018-04-26 20:45 − event.wait(time) 等待 time 时间后,执行下一步。或者在调用 event.set() 后立即执行下一步。 event.clear() 清除信号 event.set() 设置信号 event.isSet() 判断是否设置信号 要求: 定义一个按钮,等待 3... 相关推荐 2019-1…

php表白情话,朋友圈唯美表白短句情话 适合发朋友圈的情话

1、一个人经历了所有的苦难,也不要指望能和谁在一起;我曾经真诚的尝试过,但是结果我不想说。2、只要你愿意,只要我有,整个世界都是你的,而你只能是我的。3、只要你愿意,当你失落失意的时候&…

高德地图看各省分界线_深度解读|高德宣布高精地图“百元时代”背后的商业逻辑是什么...

车展前夕,高德的一次媒体沟通会,或许将为国内自动驾驶的发展带来深远影响。4月11日,高德地图在北京举行“高精宣言”媒体沟通会,表示将对高精地图服务进行升级,并以成本价格提供标准化高精地图,与合作伙伴分…