美文网首页
day_002 Python中的字符串操作

day_002 Python中的字符串操作

作者: HavenYoung | 来源:发表于2018-07-18 20:04 被阅读0次

    一、字符串

    1.字符串的基本知识

    要点:

    • 使用单/双引号括起来的字符集就是字符串
      如:
      '56'
      'sdff'
      '#$#dffdf'
      '舒服点'
      ' '
    • 引号中单独的符号、数字、字母等叫字符
    • 转义字符:可以用来表示一些有特殊功能或者特殊意义的字符(通过在固定的字符前加\)
      如:
      \' ----- '
      \\ -----
      \n ----- 换行
      \t ----- 制表符
      注意:在计算字符串长度的时候,转义字符代表一个字符

    示例:

    str1 = '锄禾日当午,\n汗滴禾下土。\n谁知盘中餐,\n粒粒皆辛苦。'
    print(str1)
    print(len(str1))
    

    结果:

    锄禾日当午,
    汗滴禾下土。
    谁知盘中餐,
    粒粒皆辛苦。
    27
    
    • 阻止转义
      在字符串前加r/R可以阻止转义

    示例:

    print(r'\\')
    

    结果:

    \\
    

    2.Python中的字符串中的字符是Unicode编码

    要点:

    • Unicode编码:使用16位对一个字符进行编码。编码的目的是让字符可以存储到计算机中。
    • Unicode码中包含了ASSCII码。可以表示世界上所有的语言和符号。

    示例:
    获取一个字符的Unicode码
    ord(字符),结果为十进制数,可用hex()转化为十六进制数

    name = '我的天'
    list1 = []
    for word in name:
        print('十进制数:', ord(word))
        print('十六进制数:', hex(ord(word)))
        list1.append(ord(word))
    
    print(list1)
    

    结果:

    十进制数: 25105
    十六进制数: 0x6211
    十进制数: 30340
    十六进制数: 0x7684
    十进制数: 22825
    十六进制数: 0x5929
    [25105, 30340, 22825]
    

    同样也可以将Unicode码转换成字符
    示例:
    将Unicode码转化成字符
    chr(编码值),注意:chr()的参数类型为int。可以是十进制数和十六进制数,但是str类型的十六数进制会报错

    for num in list1:
        print(num, type(num))
        print(chr(num))
    
    print(chr(0x4E00))
    

    结果:

    25105 <class 'int'>
    我
    30340 <class 'int'>
    的
    22825 <class 'int'>
    天
    一
    

    3.字符串比较大小

    要点:

    • 字符串比较大小,从第一个字符开始,一次往后比较每个字符的大小,直到遇到字符不一样为止。
    • 比较字符大小的时候,实质比的是他们额编码的大小。

    示例:

    print('abc' > 'b')
    print('a' == 'a')
    

    结果:

    False
    True
    

    二、获取字符串的字符

    Python的字符串实质是一个有序的字符序列。

    1.获取字符串的长度:(长度 ----- 字符串中字符的个数)

    要点:

    • len()是获取序列长度的内置函数

    示例:

    length = len('i am Mark')
    print(length)
    

    结果:

    9
    

    2.通过下标获取字符串中的单个字符

    要点:

    • 字符串中的每个字符都对应一个下标(索引).可以通过索引值获取指定的字符
      如:'abc'中,'a'的下标为0或者-3,'b'的下标为1或者-2,'c'的下标为2或者-1。
    • 下标的范围: 0 ~ 字符串长度-1
    • 索引也可以用负数,表示从右往左,右边第一位的索引用负数表示为string[-1],第二位为string[-2]
    • 获取字符的时候,索引值不能超出索引的范围,否则会报IndexError错误

    示例:

    str1 = 'abcdefghijk'
    a = str1[0]
    print(a, type(a))
    b = str1[1]
    print(b, type(b))
    

    结果:

    a <class 'str'>
    b <class 'str'>
    

    3.获取字符串中的部分字符

    • string[开始下标:结束下标:步进] ":步进"不写默认为":1"
    • string[开始的下标:结束的下标] ----- 获取字符串从开始下标到结束下标的字符(包含开始下标对应的字符,不包括结束下标的字符)

    示例:
    (1)开始和结束下标都有值时,要求:开始下标对应的字符要在结束下标对应的字符前面(步进为正数)

    #正序
    str3 = 'hello Python'
    python = str3[6:12]
    print(python)
    
    #倒序
    python = str3[-6:12]
    print(python)
    

    结果:

    Python
    Python
    

    (2)开始下标省略:从字符串的第一个字符取到结束下标前(不包括结束下标对应的字符)

    python = str3[:4]
    print(python)
    

    结果:

    hell
    

    (3)结束下标省略:从开始下标对应的字符取到字符结束

    python = str3[4:]
    print(python)
    

    结果:

    o Python
    

    (4)两个都会省略:获取整个字符串的内容

    python = str3[:]
    print(python)
    

    结果:

    hello Python
    

    (5)设置步进

    python = str3[::2]
    print(python)
    

    结果:

    hloPto
    

    (6)步进为负数

    print(str3[3:1:-1])
    

    结束:

    ll
    

    (7)倒序

    print(str3[::-1])
    

    结果:

    nohtyP olleh
    

    三、字符串运算符

    1.+:字符串拼接

    要点:

    • 要求:"+"两边类型相同,如字符串1+字符串2

    示例:

    str1 = 'hello' + ' ' + 'Python'
    print(str1)
    

    结果:

    hello Python
    

    2.*:让字符串重复

    要点:

    • 格式:字符串*正数

    示例:

    str2 = '嘤'*3
    print(str2)
    

    结果:

    嘤嘤嘤
    

    3.in:

    要点:

    • 格式:字符串1 in 字符串2 作用:判断字符串1是否在字符串3中 ----- 在就是True,不在就是False

    示例:

    result1 = 'a' in 'abc'
    print(result1)
    

    结果:

    True
    

    4.not in:

    要点:

    • 格式:字符串1 not in 字符串2 作用:判断字符串1是否不在字符串3中 ----- 不在就是True,在就是False

    示例:

    result2 = '123' not in 'abc'
    print(result2)
    

    结果:

    True
    

    5.格式字符串

    要点:

    • 格式:'字符串1占位符1字符串2占位符2'%(值1,值2)
    • 常用格式字符串:
      %s ----- 字符串占位符(格式符)
      %d ----- 整数占位符(格式符)
      %f ----- 浮点数占位符(格式符)
      %c ----- 字符占位符(Python中为长度为1的字符串)(格式符)(可以给字符也可以给字符的编码值)
      %u ----- 格式化无符号整形
      %x ----- 格式化无符号十六进制数(小写)
      %X ----- 格式化无符号十六进制数(大写)
      %e ----- 用科学计数法格式化浮点数
      %E ----- 同%e
      %g ----- %f和%e的简写
      %G ----- %f和%E的简写
      %.nf ----- 使用n值限制小数点后面额小数的位数(默认六位小数)

    示例:

    str3 = 'abc%sABC%d'%('>', 234)
    print(str3)
    
    str4 = '%s-%d-%f-%c-%c'%('str', 12, 12.5, 'c',99)
    print(str4)
    
    str5 = '金额:%.2f元'%(100)
    print(str5)
    

    结果:

    abc>ABC234
    str-12-12.500000-c-c
    金额:100.00元
    

    如果后面没有加%,那么这个字符串就是一个普通的字符串

    str6 = '金额:%.2f元'
    print(str6)
    

    结果:

    金额:%.2f元
    

    四、字符串相关操作方法

    字符串相关方法通用格式:字符串.方法()

    1.capitalize()

    作用:
    将字符的首字母大写,返回首字母大写后的新字符串,不对原字符串操作(不对改变原字符串)。
    示例:

    str1 = 'abc'
    str2 = str1.capitalize()
    print(str1)
    print(str1.capitalize())
    print(str2)
    

    结果:

    abc
    Abc
    Abc
    

    2.center(width, fillchar)

    作用:
    返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。不对原字符串操作(不对改变原字符串)。

    示例:

    str3 = str1.center(11, '-')
    print(str3)
    print(len(str3))
    

    结果:

    ----abc----
    11
    

    3.强转类型

    作用:
    将变量的类型转换成目标数据类型(int、str等)

    示例:

    str4 = 123
    str5 = str(str4)
    print(str4, type(str4))
    print(str5, type(str5))
    

    结果:

    123 <class 'int'>
    123 <class 'str'>
    

    4.rjust(width, fillchar)

    作用:
    返回一个指定的宽度width右对齐的字符串,fillchar为填充的字符,默认为空格。不对原字符串操作(不对改变原字符串)。

    示例:

    number = 9
    num = str(number).rjust(3,'0')
    stu_id = '1805' + num
    print(number)
    print(num)
    print(stu_id)
    

    结果:

    9
    009
    1805009
    

    5.ljust(width, fillchar)

    作用:
    和rjust(width, fillchar)相对,左对齐

    示例:

    u_id = '123.1'
    u_id_l = u_id.ljust(5,'x')
    print(u_id)
    print(u_id_l)
    

    结果:

    231
    231xx
    

    6.isdigit()和isnumeric()

    作用:
    isdigit()和isnumeric()都是用来判断字符串是否为数字(int类型)字符串,但是isdigit()只能判断阿拉伯数字(如:1,2,3,4),isnumeric()能判断汉字数字(包括大小写,如:一、伍佰),但是不能判断英文数字(如:one,two)

    示例:
    大写汉字数字

    u_id = '伍佰'
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    结果:

    False
    True
    

    小写汉字数字

    u_id = '一百二'
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    结果:

    False
    True
    

    整数阿拉伯数字

    u_id = '120'
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    结果:

    True
    True
    

    浮点数

    u_id = '120.012'
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    结果:

    False
    False
    

    7.join(seq)

    作用:
    在字符串2中的每一个字符后加入字符串1

    示例:

    strs = 'abc'
    strs2 = strs.join(u_id)
    print(strs2)
    

    结果:

    1abc2abc0abc.abc0abc1abc2
    

    8.replace(old,new[,max])

    作用:
    用new替代字符串中的old,[,max]为要操作的次数,不写默认为全部替换。

    示例:

    string1 = '  jkj jkj jkj  '
    print(string1.replace(' ', ''))
    

    结果:

    jkjjkjjkj
    

    相关文章

      网友评论

          本文标题:day_002 Python中的字符串操作

          本文链接:https://www.haomeiwen.com/subject/ateopftx.html