zoukankan      html  css  js  c++  java
  • Python—字符串的操作

    字符串的操作

    变量:
    变量只能是 字母,数字或下划线的任意组合,但首个字符不能为数字,且不能有空格
    以下关键字不能声明为变量:
    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中有“	”,则把扩大tap的字符数。  ‘g	kx’如果默认,则是	往前补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 +3' 46 >>> name_7.splitlines() 47 ['1+2', '+3'] 48 >>> #同split ,默认是用 换行符,分割 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 >>>
  • 相关阅读:
    2019牛客暑期多校训练营(第五场)
    2019 Multi-University Training Contest 4
    Sublime主题安装
    CF-311B Cats Transport(斜率优化DP)
    CF-559C Gerald and Giant Chess(计数DP)
    [AHOI2009] [BZOJ1799] 月之迷 (数位DP)
    BZOJ_3270_博物馆_(高斯消元+期望动态规划+矩阵)
    BZOJ_1778_[Usaco2010_Hol]_Dotp_驱逐猪猡_(期望动态规划+高斯消元+矩阵)
    BZOJ_1013_[JSOI2008]_球形空间产生器_(高斯消元)
    BZOJ_1012_[JSOI2008]_最大数maxnumber_(线段树/树状数组+RMQ)
  • 原文地址:https://www.cnblogs.com/gkx0731/p/9419924.html
Copyright © 2011-2022 走看看