字符串的操作

变量:
变量只能是 字母,数字或下划线的任意组合,但首个字符不能为数字,且不能有空格
以下关键字不能声明为变量:
and ,as,   assertbreakclasscontinuedefdelelifelseexcept 
execfinallyforfrom ,golbal,  ifimportinis ,lamda ,notorpassprintraise
returntrywhile ,with ,yield
变量的命名

字符串都是可哈希的(不可变),因此字符串的操作都是生成新的字符串,不是修改原始值。但是列表是可变的,因此列表的方法都是直接修改原始值。

方法按字母索引:

1.  C-F

 1 >>> name = "my name is gkxxxx"
 2 >>> name.capitalize()
 3 'My name is gkxxxx'
 4 >>> name.casefold()
 5 'my name is gkxxxx'
 6 >>> #casefold 与lower很像,不过lower只针对ASCII码的字母
 7 >>> name.center(10,"-")
 8 'my name is gkxxxx'
 9 >>> name.center(40,"-")
10 '-----------my name is gkxxxx------------'
11 >>> #输出40个字符,若name不足,用“-”补足,其中name里的空格也算字符数
12 >>> name.endswith("x")     #  'gkxpanda'.startswith('x',2,5)  --->  对字符串切片2,5(顾头不顾尾),判断是否以x开头
13 True                       #  对于判断字符串的开头结尾,可以看成判断 str[0],str[-1],因为字符串也有index
14 >>> name.endswith("aa")
15 False
16 >>> #判断字符串结尾,正确返回true,比如是否以.com结尾,不能为空,会报错。
17 >>> name.expandtabs(tabsize=30)
18 'my name is gkxxxx'
19 >>> #假如name中有“\t”,则把扩大tap的字符数。  ‘g\tkx’如果默认,则是\t往前补8位,比如 此处字母只有1个g,会再补7个空格
20 >>> name.find("name")  #找不到返回 -1
21 3
22 >>> #找到name的起始位置,Ps:字符串也可以切片,如下:
23 >>> name[name.find("name"):9]
24 'name i'
25 >>> name[name.find("name"):7]
26 'name'
27 >>> name2 = "my name is {name_2}"
28 >>> name2.format(name_2=name)
29 'my name is my name is gkxxxx'
30 >>> #format 格式化输出
31 >>> name2.format_map({'name_2':'gkxxx'})
32 'my name is gkxxx'
33 >>> #format_map 也是格式化输出,不过用的是字典,很少用就是了

 

#format
>>> name = '1'
>>> age = 1
>>> a = '{},{}'.format(name,age)
>>> a
'1,1'

字符串中有多少大括号,foamat后面就可以跟几个

 

 

 

 

2.   i

 1 >>> name.index('m')
 2 0
 3 >>> print('ab23'.isalnum)
 4 <built-in method isalnum of str object at 0x000001F2A409C228>
 5 >>> #包含所有的英文字符和1~9,返回true,如果有特殊字符就返回false
 6 >>> name.isalpha()
 7 False
 8 >>> name_3 = 'abc'
 9 >>> name_3.isalpha()
10 True
11 >>> name.isdecimal()
12 False
13 >>> #是否是十进制
14 >>> name.isdigit()
15 False
16 >>> #是否是数字
17 >>> name.isidentifier() #判断是不是一个合法的标识符(变量名)
18 False
19 >>> name_3.isidentifier()
20 True
21 >>> name_3.islower()
22 True
23 >>> #判断是不是小写
24 >>> print('33'.isnumeric())
25 True
26 >>> #与 .isdigit差不多
27 >>> #带小数返回false
28 >>> name_4 = 'My Name Is Gkxx'
29 >>> name_4.istitle() #判断是否开头都是大写
30 True
31 >>> name_4.isprintable() #如果是字符串不用考虑是否可以打印,类似linux ttyfile drive file不能打印
32 True
33 >>> name_4.isupper()
34 False
35 >>> 

 3. J~Z

 1 >>> print('+'.join(['1','2','3','4','5']))
 2 1+2+3+4+5
 3 >>> print('+'.join(['1','2','3','4','5'])) #emmmm,如结果所示
 4 1+2+3+4+5
 5 >>> name.ljust(40,'*')  #同center,左边字符串不足位数,自动补位
 6 'my name is gkxxxx***********************'
 7 >>> name.rjust(40,'-')  #同center,ljust 右边字符串不足位数,自动补位
 8 '-----------------------my name is gkxxxx'
 9 >>> name.lower()  #全小写,做验证码登陆可以用f
10 'my name is gkxxxx'
11 >>> name.upper()  #全大写
12 'MY NAME IS GKXXXX'
13 >>> name_5= '     gkx       '
14 >>> name_5.lstrip()
15 'gkx       '
16 >>> name_5.rstrip()
17 '     gkx'
18 >>> name_5.strip()  #'sdgx@sd f#'.strip(' @#')  ---> 'sdgx@sd f'只要是位于首尾的特殊字符,空格,数字,直接写在.strip()的参数里,都可以删除,但是中间的就不会删
19 'gkx'
#strip的坑:
>>> a = 'aaa****ab'
>>> a.strip('ab')
>>'****'     #用字母去做strip的时候,会去掉所有的字母
20 >>> 
21 >>> ser = str.maketrans('abcdefg','1234567')
22 >>> text = 'c is after a'
23 >>> text.translate(ser)
24 '3 is 16t5r 1'
25 >>> # maketrans可以设置一一对应的字符,translate可以翻译maketrans,从而达到加密效果
26 >>> 
27 >>> name_6 = 'my name is gkx'
28 >>> name_6.partition(" ")
29 ('my', ' ', 'name is gkx')
30 >>> #根据字符串已有的分隔符,把字符串分割成tuple
31 >>> 
32 >>> name.replace('x','WW')
33 'my name is gkWWWWWWWW'
34 >>> name.replace('m','M',0)
35 'my name is gkxxxx'
36 >>> name.replace('x','WW',1)   #不写1则替换所有的X为WW,写了就只替换第一处x
37 'my name is gkWWxxx'
38 >>> #对字符串的值进行替换,最后一个数字表示,想替换的个数
39 >>> 
40 >>> name.rfind('y') #同find,不过find默认找到最左边的值的index,rfind默认找到最右边的值的index
41 1
42 >>> 
43 >>> name.split(' ')  #根据字符串已有的分隔符,把字符串分割成列表,此处分隔符为空格
44 ['my', 'name', 'is', 'gkxxxx']

  "aa_bb_cc".rsplit('_',1) #从右边开始分割,只分割一次
  >>> ['aa_bb','cc']
45 >>> name_7 = '1+2\n+3' 46 >>> name_7.splitlines() 47 ['1+2', '+3'] 48 >>> #同split ,默认是用\n换行符,分割 49 >>> 50 >>> name_8 = 'MY name IS gkx' 51 >>> name_8.swapcase() #转换大小写 52 'my NAME is GKX' 53 >>> name_8.title() #首字母大写,每个隔开的(空格,特殊字符,数字)单词首字母大写 54 'My Name Is Gkx' 55 >>> name_8.zfill(50) #自动用0补位 56 '000000000000000000000000000000000000MY name IS gkx' 57 >>>

 

posted on 2018-08-04 21:07  阿橙  阅读(388)  评论(1编辑  收藏  举报