字符串功能

Posted guoxing-z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串功能相关的知识,希望对你有一定的参考价值。

字符串功能

万能的点

  • str. :在pycharm中输入str.就会显示很多功能

upper()/lower()字母的大小写(得到的结果是str)

  • 变量名.upper() 功能:将变量中字符串的英文字母变大写,但不会改变原变量内容。

    eg:

    value = "alex sb"
    new_value = value.upper() #这里注意不能只写value.upper(),因为这个功能只能进行赋值,不能改变原有变量中字母的大小写。故将其变大之后的字符串赋值给一个新的变量。
    print(value,new_value)
  • 变量名.lower() 功能:将变量中字符串的英文字母变小写

  • eg:

    技术图片

isdigit()判断str是否可以转换成int(得到的结果是bool)

  • 变量名.isdigit() 如果可以转换,会输出True;如果不能转换,会输出False

  • eg:

    技术图片

strip(str)去除头尾(得到的结果是str)

  • strip() 如果括号内不写字符则默认为去除空白“space & tab &enter”,但是字符中间的空白不会去除
  • 可以指定去除头尾两端的内容
  • tab: 制表符 ---> pycharm中用\n表示
  • enter: 换行符 ---> pycharm中用\t表示
  • space

  • 变量名.strip() 去掉字符串左右两边的空格

  • 变量名.rstrip() 去掉字符串右边的空格

  • 变量名.lstrip() 去掉字符串左边的空格

  • eg:

    技术图片

  • eg:

    name = "\n\t   alex    a \n"
    new = name.strip()
    print(new)    --->    输出结果是"alex   \n"。alex前以及a后的空白全部被消除,但alex与a之间的空白没有被消除,因为内部空白被消除就改变了变量的内容。
    
    指定去除头尾两端的内容:
    name = "al\nex   \t a"
    new = name.strip("a") --->    输出结果是"l\nex   \t"       
    因为括号内输入了"a",所以space,tab,enter都没有被消除,只有a被消除了
  • 应用场景:

    # 账号:alex 密码:alex123
    # alex   alex123
    # user = input("账号:").strip()
    # pwd = input("密码:").strip()
    # if user == "alex" and pwd == "alex123":
    #     print("ok")
    # else:
    #     print("gun")

replace(str,str,int)替换(得到的结果是str)

  • 变量名.replace(‘xx‘,‘yy‘,数字) 功能:将指定变量中的xx替换为yy。括号内数字为替换的个数,按从左到右的顺序。如果不写个数,则默认全部替换

  • eg:

    技术图片

split(str,int)切割(返回的是列表)

  • 变量名.split(‘字符‘,数字) 功能:以括号内的某个字符将变量中的完整字符串切割成部分字符,括号内数字为切割的个数,按从左到右的顺序。如果不写字符,则默认是切割空白(即space,enter,tab);可以没有数字(即不限定切割个数)

  • 变量名.rsplit(‘字符‘,数字) 与split的区别在于:加完数字限定切割个数后,切割的顺序相反(从右向左)

  • eg:

    技术图片

  • a = "alex:alex123"
    lst = a.split(":")  # 默认按照空格及换行符,制表符进行分割
    print(lst[0])
    print(lst[1])
    # 这里同字符串的索引,索引是指各个字符在一个字符串里的位置,这里为列表中各个字符串在列表里的位置
    ['alex', 'alex123'] 列表
  • name = "alex\tmeet"
    print(name.split("e"))
    --->  输出结果是['al', 'x\tm', '', 't']

name[int]索引:(下标)

  • name[xxx] xxx代表第几位

  • eg:

    name = "meet"
         #0123(索引值|下标志)   从左向右
         #-4-3-2-1        从右向左:这对于优先输出末尾的字符串比较方便.
    print(namep[0])  ---m
    print(namep[-4])  ---m
    
    name = "meet_alex_wusir"
    a = name[5] #a
    b = name[6] #l
    c = name[7] #e
    d = name[8] #x
    print(a+b+c+d)    --->    alex

name[-1:3:-1]切片+步长

  • name[起始位置:终止位置+1] 不写终止位置则默认到结尾为止;不写起始位置则默认从头开始

  • name = "meet_alex_wusir"
    a = name[5] #a
    b = name[6] #l
    c = name[7] #e
    d = name[8] #x
    print(a+b+c+d)        or      print(name[5:9])
    注意:[起始位置:终止位置+1]  
    顾头不顾腚,所以腚的位数要+1
    如果不写终止位置,即[起始位置:],则会从起始位置输出至完.
    
    如果要输出wusir:       print(name[-5:]) 这里如果写-5:-1则最后一位不会输出,然而他的最后一位还不能+1,因为0是正数的第一位,-1是反数的第一位。所以只能不写,让他输出至完。
    
    如果要输出e_l:     print(name[2:7:2])  步长:写在最后,不写时默认为一。此时为2,意为一次跨两步,即输出2,4,6。
    
    print(name[-1:3:-1])  --->    输出结果:risuw_xela_    顾头不顾腚,所以没有t。当步长为负数时顺序就变成了从右到左。
    
    因此,补偿可以控制查找方向

总结:

  • 索引时,如果超出最大索引值会报错
  • 切片时,如果超出最大切片值不会报错
  • 索引和切片只能给有序数据类型使用

id(str)

  • 字符串--str

    有序:索引

    不可变:内存地址

    # name = "meet"
    # print(id(name))
    # name = name + "最帅了"
    # print(id(name)) --->    两个id是不一致的
    
    # name = "meet"
    # name1 = "meet"
    # print(id(name))     两个id是一致的
    # print(id(name1))  # 小数据池 -- 驻留机制

startswith(str)/endswith()开头/结尾(支持切片)

技术图片

统计count(str/int)(接受切片)

  • name = "meet_alex"
  • print(name.count("e")) --> 3
  • print(name.count("ee")) --> 1

is系列

  • print(name.isalnum()) #判断变量是否是由数字,字母,汉字组成
  • print(name.isalpha()) #判断变量是否是由字母,汉字组成
  • print(name.isdigit()) #判断变量是否是阿拉伯数字 ⑤:这个也是True,是个BUG
  • print(name.isdecimal()) #判断是不是十进制,返回的是布尔值

len(str)字符串长度

  • 方法:
    # a = 123132
    # print(len(a)) #-- str,dict,list...公共方法 (获取长度)
    
    """
    a
    l
    e
    x
    """
    # count = 0
    # while count < len(name):
    #     print(name[count])  --->a\n,l\n,e\n,x\n
    #     count += 1

以上是关于字符串功能的主要内容,如果未能解决你的问题,请参考以下文章

字符串的判断功能

Hive 有字符串拆分功能吗?

VB编程,实现字符串替换功能

python字符串列表功能

String字符串类的获取功能

C的string.h里有没有字符串替换函数