zoukankan      html  css  js  c++  java
  • 3、python数据类型之字符串(str)

    字符串是任何计算机语言中最常见的数据类型,python中也不例外,因此熟练掌握字符串是学习python的必备技能。
    python中字符串三种定义方式

    str = 'wang'
    str = "wang"
    str = """wang"""

    字符串所有方法如下:

    ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith',
    'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum',
    'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric',
    'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower',
    'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust',
    'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith',
    'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

    字符串常见的操作,需要熟练掌握
    1、按照索引取值,正向取、反向取
    2、切片(切片操作顾头不顾尾,可以按照步长进行切片)
    3、长度len (str)
    4、成员运算 in  not in
    5、移除空白strip
    6、切分split
    7、循环

    1、按照索引取值,正向取、反向取(索引每次只能取一个元素)

    str1 = 'wang'
    #正向取出索引为1的字符
    print(str1[1])
    #反向取出索引为-1的字符,即最后一个字符
    print(str1[-1])

    2、切片(切片操作顾头不顾尾,可以按照步长进行切片)可以取多个元素

    str2='wangchengliang'
    #正向取切片取出出索引为0到1的字符,[0:2]不含2
    print(str2[0:2])
    

    3、长度len (str3)

    str3='wang'
    #len(str3)获取str3的长度
    print(len(str3))

    4、成员运算 in  not in

    str4 = 'wangw'
    #判断'wa','q'是否是str4的成员
    print('wa'in str4)
    print('q' not in str4)

    5、移除空格strip,lstrip去掉左边空格, rstrip去掉右边空格

    #将字符串两端空格移除,返回字符串'wang5'
    str5='    wang5   '
    print(str5.strip())
    #将字符串两端'#'移除,返回字符串'wang5'
    str5_1='##wang5##'
    print(str5_1.strip('#'))
    

    6、切分split

    str6="12343242354361254368634"
    #以2位切割符,切割字符串str2,并返回一个列表
    print(str6.split('2'))
    
    name='root:x:0:0::/root:/bin/bash'
    #默认分隔符为空格
    print(name.split(':')) 
    name='C:/a/b/c/d.txt' 
    #只想拿到顶级目录
    print(name.split('/',1))
    

     7、循环

    str7='wang'
    for i in str7:
        print(i)
    

     
    常见方法
    strip lstrip rstrip
    lower upper
    startswith endswiht
    format 三种玩法
    split rsplit
    replace
    isdigit

    capitalize
    将字符串首字母变成大写

    name = 'my 	name is wanganchengliang'
    print(name.capitalize())

    count
    统计字符串中某个字符出现的次数或某个子字符串出现的次数

    name = 'my 	name is wanganchengliang'
    print(name.count('an'))

    center
    打印50个字符,不够50个,用-补充,并把字符串放在中间

    name = 'my 	name is wanganchengliang'
    print(name.center(50,"-"))

    encode
    把字符串转换成二进制

    name = 'my 	name is wanganchengliang'
    print(name.encode())

    endswith
    判断字符串以什么结尾

    name = 'my 	name is wanganchengliang'
    print(name.endswith("ng"))
    str1 = '#swangchengliang'
    #判断是否以'#'开头
    print(str1.startswith('#'))
    

    expandtabs
    将字符串中已有的空格扩大多少倍

    name = 'my 	name is wanganchengliang'
    print(name.expandtabs(tabsize=20))

    find
    返回字符串中子符或子字符串的索引位置

    name = 'my 	name is wanganchengliang'
    print(name.find("name"))

    format
    格式化字符串输出

    name1="my name is {name} and I am {years} old"
    print(name1.format(name='wang',years=22))

    format_map
    字典方式格式化字符串输出

    print(name1.format_map({'name':'wang','years':22}))

    isalnum
    确认字符串中是纯英文字符,真返回True

    print("123abc".isalnum())

    isalpha
    确认字符串中是否包含阿拉伯数字和字符,真返回True

    print("abc".isalpha())

    isdecimal
    是否是十进制

    print("123".isdecimal())

    isdigit
    是否是一个整数

    print("123".isdigit())

    isidentifier
    判断是否是一个合法的变量名

    print("a23".isidentifier())

    islower
    判断字母是否都小写

    print("Aa123".islower())

    isupper
    判断字母是否都大写

    print("Aa123".isupper())

    isnumeric
    判断是否是只有数字

    print("123".isnumeric())

    isspace
    判断是否是空格

    print(" 123".isspace())

    istitle
    判断每个子字符是否是大写

    print("My Name Is".istitle())

    isprintable
    是否可以打印,linux中终端设备文件不可以打印,返回假

    print("123".isprintable())

    join
    字符串拼接join,该方法很重要

    #将列表中元素拼接在一起,可以在中间指定特定字符串
    print( ','.join(['1','2','3']))
    name = ' '
    print(name.join(['wang','cheng','liang'])) #可迭代对象必须都是字符串
    #将列表中各个元素通过__连接成字符串
    name1 = ['wang','cheng','liang']
    newname='__'.join(name1)
    print(newname)

    ljust
    打印字符串长度为50 不够再后面以指定字符填充

    print("My Name Is".ljust(50,'w'))

    rjust
    打印字符串长度为50 不够再前面以指定字符填充

    print("My Name Is".rjust(50,'w'))

    upper
    小写变大写

    print("abc".upper())

    lower
    大写变小写

    print("ABCD".lower())

    lstrip
    去掉左边的回车或空格

    print("  
    erf".lstrip())

    rstrip
    去掉右边的回车或空格

    print("fgh
      ".rstrip())

    strip
    去掉左右两边的空格和回车

    print("  
    tt
       ".strip())

    translate
    加密字符串

    p = str.maketrans('qwert','12345')
    print("wanger".translate(p))
    print(p)

    replace

    字符串中子字符替换

    #替换指定的字符或字符串
    print("abc".replace('a','1'))
    name='wangchengliang'
    #替换所有位置ng为'王'
    print(name.replace('ng','王'))
    #替换第一次出现的'ng'为王
    print(name.replace('ng','王',1))

    rfind
    找到最右边的字符或字符串的下标

    print("qweer12".rfind('e'))

    split
    按照指定的条件分割形成列表

    print("qwew qe13".split(' '))
    print("qwewqe13".split('e'))
    print("1+2+3+4+5+6".split('+'))

    splitlines
    按照换行符分割成列表

    print("1234
    werew".splitlines())
    

    startswith

    判断字符串是否以某个子字符或字符串开头

    str1 = '#swangchengliang'
    #判断是否以#开头
    print(str1.startswith('#'))

    swapcase
    大写变小写 小写变大写

    print("qeeWwW".swapcase())

    zfill
    输出指定的字符串,不够以0填充

    print("weqwe".zfill(10)) 
    

    补充:

    输出自己名字的二进制、十进制、十六进制
    说明:
    python3.5中,for循环字符串时,循环的每一个元素是字符

    utf-8中一个字符等于3个字节
    gbk 中一个字符等于3个字节
    字符--->字节转换方式(bytes to str  str to bytes)

    name="王成亮"
    byte_list= bytes(name,encoding='utf-8')
    

    将字符串转换成字节

    b1 =bytes(name,encoding='utf-8')
    b2 =bytes(name,encoding='gbk')
    print(b1)
    print(b2)
    

     将字节转换成字符串

    b3 = str(b1,encoding='utf-8')
    b4 = str(b2,encoding='gbk')
    print(b3)
    print(b4)
    

    将名字的二进制,十进制,十六进制方式输出

    name = "王成亮"
    for n in name:
        #utf-8中一个汉字3个字节,默认打印每个汉字
        print(n)
        #将字符转换为byte类型,输出16进制
        byte_list_n= bytes(n,encoding='utf-8')
        print(byte_list_n)
        #循环字符类型输出十进制,使用bin()方法输出二进制
        for b in byte_list_n:
            print(b,bin(b))
    
  • 相关阅读:
    c# 方法重载
    c# propertyGrid下拉选项
    c# 枚举类型
    c# socket编程
    读书笔记之ado.net entity framework
    c# delegate的invoke和bejinInvoke的区别
    C# 读书笔记之类与结构体
    c#笔记之启动新线程
    c# listview的使用
    visual studio2013 改变匹配括号的颜色
  • 原文地址:https://www.cnblogs.com/wclwcw/p/8262234.html
Copyright © 2011-2022 走看看